Java数组操作

68 阅读1分钟

将一个数组按指定长度拆分


    public static Object[] splitAry(String[] ary, int subSize) {
      //用数组的长度除以每个数据的内容数 能除尽就是商是数组个数,除不尽就是商+1个
        int count = ary.length % subSize == 0 ? ary.length / subSize : ary.length / subSize + 1;
        //建立一个list里面的object是list。将原来的大数组分成小的装在list里面
        List<List<String>> subAryList = new ArrayList<List<String>>();
        //按照获取的数组数循环
        for (int i = 0; i < count; i++) {//定位每组循环的最大下标
            int index = i * subSize;
            List<String> list = new ArrayList<String>();
            int j = 0;//j小于这一组的最大下标 而且小于整个大数组的长度  将这个符合条件的元素加入list.
            while (j < subSize && index < ary.length) {
                list.add(ary[index++]);
                j++;
            }
            //然后再将list加入到大的list里面
            subAryList.add(list);
        }
        //新建一个对象数组
        Object[] subAry = new Object[subAryList.size()];
        //循环遍历大List
        for (int i = 0; i < subAryList.size(); i++) {
            List<String> subList = subAryList.get(i);
            String[] subAryItem = new String[subList.size()];//将小list里面的值遍历添加到小数组里面
            for (int j = 0; j < subList.size(); j++) {
                subAryItem[j] = subList.get(j);
            }
            //将小数组添加到大数组里
            subAry[i] = subAryItem;
        }

        return subAry;
    }


    //测试方法
    public static void main(String[] args) {
        String[] ary = {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"};//要分割的数组
        int splitSize = 5;//分割的块大小
        Object[] subAry = splitAry(ary, splitSize);//分割后的子块数组

        for(Object obj: subAry){//打印输出结果
            String[] aryItem = (String[]) obj;
            for(int i = 0; i < aryItem.length; i++){
                System.out.print(aryItem[i] + ", ");
            }
            System.out.println();
        }
    }

判断数组中是否包含某个值

Object[] arrs = new Object[]{'a','b','c','d','1'};
boolean result = false;
//第一种:List
System.out.println(Arrays.asList(arrs).contains('d'));
//第二种:set
Set<Object> sets = new HashSet<Object>(Arrays.asList(arrs));
System.out.println(sets.contains('e'));