Java数组转换集合

数组转换集合

 方法一 : 数组转换集合

package com.mybatis.demo.exercise;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @author yinsenxin
 */
public class TestArray2List {

    public static void main(String[] args) {

        // java数组转List 基本类型int []
        int [] array = {1,2,3,4,5};
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < array.length; i++) {
            list.add(array[i]);
        }
        // 非基本数据类型 {String Integer Double...}
        String[] stringArray = { "a", "b", "c", "d", "e" };
        List<String> list1 = Arrays.asList(stringArray);
    }
}

 

  基本类型数组 类如int类型, 不能使用 Arrays.asList();直接将数组元素转换到集合中;

  可以先将 int [] 转换成 Integer [] 类型的数组,然后在使用 Arrays.asList();进行转换到集合中;

  可以使用apache封装的数组工具类来完成 导入如下依赖

<dependency>
     <groupId>commons-lang</groupId>
     <artifactId>commons-lang</artifactId>
     <version>2.6</version>
</dependency>

 

package com.mybatis.demo.exercise;

import org.apache.commons.lang.ArrayUtils;

import java.util.Arrays;
import java.util.List;

public class TestArray2List {
    public static void main(String[] args) {
        int [] array = {1,2,3,4,5};
        // 使用apache封装的数组工具类 ArrayUtils将int [] --> Integer []
        Integer[] integers = ArrayUtils.toObject(array);
        // 再通过Arrays.asList();转换
        List<Integer> integers1 = Arrays.asList(integers);
    }
}

 

 方法二 : 使用 java8中的Stream来完成

 

package com.mybatis.demo.exercise;

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * @author yinsenxin
 */
public class ArraySort {
    public static void main(String[] args) {

        // int 数组转换成 Integer数组
        int[] nums = {1,22,3,21};
        //先将int数组转换为数值流
        IntStream stream = Arrays.stream(nums);
        //流中的元素全部装箱,转换为流 ---->int转为Integer
        Stream<Integer> integerStream = stream.boxed();
        //将流转换为数组
        Integer[] integers = integerStream.toArray(Integer[]::new);
        // Integer数组 转List
        List<Integer> integers1 = Arrays.asList(integers);


        // int []数组 直接转换成 List集合
        List<Integer> collect = Arrays.stream(nums).boxed().collect(Collectors.toList());
    }
}

 

 

 

 

 

 

posted @ 2020-07-16 15:39  yinsenxin  阅读(1761)  评论(0)    收藏  举报