java ArrayList<Integer> 转 int一维数组、二维数组 toArray方法

font color=#999AAA >来源:
声明:如果我侵犯了任何人的权利,请联系我,我会删除
欢迎高手来喷我

ArrayList 转一维数组int[] —遍历/toArray()
 //1. 遍历
ArrayList<Interger> list = new ArrayList<>();
	list.add(1); list.add(2);
	int[]arr = new int[list.size()];
	int index= 0;
	for(int a : list){
		arr[index++] = a;
	}
 2. toArray()需要object做中转
         ArrayList<Integer> list = new ArrayList<>();

        for (int i = 0; i< 10; i++) {
			list.add(i);
		}

        Object[] arr = list.toArray();
        int[] rett = new int[arr.length];

        for(int i=0;i<arr.length;++i){
            rett[i] = (int)arr[i];
        }

        System.out.println(Arrays.toString(rett));
ArrayList<Integer> 转一维数组int[] —toArray()
List<int[]> merged = new ArrayList<int[]>();

merged.toArray(new int[merged.size()][]);
ArrayList<ArrayList<Integer>> 转二维数组int[] []没有找到方法(因为在写程序的过程中,二维的长度和一维数组的长度都是不确定的,感觉ArrayList<ArrayList<Integer>> 会方便,但是不好变回来),所以在程序中需要这样转换的时候,建议用List<int[]> merged 代替 ArrayList<ArrayList<Integer>> ,这样很方便的
    @Test
    public void test5(){
        int[] array = {1, 2, 5, 5, 5, 5, 6, 6, 7, 2, 9, 2};
 
        /*int[]转list*/
        //方法一:需要导入apache commons-lang3  jar 
        List<Integer> list = Arrays.asList(ArrayUtils.toObject(array));
        //方法二:java8及以上版本
        List<Integer> list1 = Arrays.stream(array).boxed().collect(Collectors.toList());
 
        /*list转int[]*/
        //方法一:
        Integer[] intArr =  list.toArray(new Integer[list.size()]);
        //方法二:java8及以上版本
        int[] intArr1 =  list.stream().mapToInt(Integer::valueOf).toArray();
        
    }

猜你喜欢

转载自blog.csdn.net/qq_45531729/article/details/111386412