您的位置:

Java数组转集合方式总结

一、Java数组转List集合

String[] strArr = {"apple", "banana", "orange"};
List
    list = Arrays.asList(strArr);
   

Arrays.asList()是最常见的将数组转换为List的方法,该方法返回一个List集合,使用起来非常方便。需要注意的是,该方法返回的 List 不是 java.util.ArrayList,而是 java.util.Arrays$ArrayList,它是 Arrays 内部类,继承了 AbstractList,实现了 List、RandomAccess(提供快速随机访问)和 Cloneable 接口。与 ArrayList 不同的是,数组转化为 ArrayList 后长度不可改变。

由于Arrays.asList()方法返回的是一个固定大小的List,所以不能使用像add()和remove()这样的修改集合大小的方法。如果使用这些方法,会抛出 UnsupportedOperationException 异常。

//修改第二个元素
list.set(1, "grape");
System.out.println(Arrays.toString(strArr)); //输出:[apple, grape, orange]
//执行如下代码将会抛出UnsupportedOperationException异常
list.add("peach");

二、Java数组转ArrayList集合

String[] strArr = {"apple", "banana", "orange"};
List
    list = new ArrayList<>(Arrays.asList(strArr));
   

如果想要像 ArrayList 一样可以随意增加、删减元素,可以将Arrays.asList()方法得到的 List 转化为 ArrayList。如上面代码所示,需要将 Arrays.asList() 得到的 List 作为 ArrayList 构造方法的参数传入。

三、Java数组转LinkedList集合

String[] strArr = {"apple", "banana", "orange"};
List
    list = new LinkedList<>(Arrays.asList(strArr));
   

同样地,如果需要得到 LinkedList,只需要将 LinkedList 构造方法的参数传入 Arrays.asList()方法得到的 List 即可。

四、Java数组转HashSet集合

String[] strArr = {"apple", "banana", "orange"};
Set
    set = new HashSet<>(Arrays.asList(strArr));
   

Arrays.asList()方法也可以将数组转化为 Set 集合,比如上例的HashSet。需要注意的是,由于 Set 是不可重复的集合,如果数组中有重复元素,转换为 Set 后只会保存一个元素。

五、Java数组转LinkedHashSet集合

String[] strArr = {"apple", "banana", "orange"};
Set
    set = new LinkedHashSet<>(Arrays.asList(strArr));
   

同样地,如果需要得到 LinkedHashSet,只需要将 LinkedHashSet 构造方法的参数传入 Arrays.asList()方法得到的 List 即可。

六、Java数组转TreeSet集合

String[] strArr = {"apple", "banana", "orange"};
Set
    set = new TreeSet<>(Arrays.asList(strArr));
   

如果需要得到排序后的 Set 集合,可以使用 TreeSet。TreeSet 会对元素进行排序,要求元素必须实现Comparable接口。如果没有实现 Comparable 接口,可以使用 TreeSet 的构造方法传入一个 Comparator,自定义排序规则。

七、Java数组转Stream流

String[] strArr = {"apple", "banana", "orange"};
Stream
    stream = Arrays.stream(strArr);
   

Java 8 引入了 Stream 流,可以使用Arrays类的stream()方法将数组转换为流。Stream 流提供了大量的操作和中间处理器,可以方便地对元素进行过滤、操作、排序等等。

八、Java数组转IntStream流

int[] intArr = {1, 2, 3};
IntStream intStream = Arrays.stream(intArr);

如果数组是基本类型的数组,比如int数组,可以使用Arrays类的stream()方法将其转换为对应的Stream流。

九、Java数组转为字符串

String[] strArr = {"apple", "banana", "orange"};
String str = Arrays.toString(strArr);
System.out.println(str); //输出:[apple, banana, orange]

在 Java 中,将数组转换为字符串可以使用Arrays类的toString()方法:

综上所述,Java数组转集合的方式有很多,我们可以根据需要选择合适的方法。需要注意的是,通过Arrays.asList()方法得到的 List 长度不可变,如果想要随意添加、删除元素,需要将其转换为 ArrayList。