栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

list,set,数组之间相互转换

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

list,set,数组之间相互转换

1.数组转list

1.数组转list,转后不支持增删

 String[] strArray = new String[]{"1","2"};
 int[] aaa = new int[]{0,1,2,3,4};
 Character[] character = new Character[]{'1','2'};
 List list3 = Arrays.asList(strArray);
 // list3.add("3");
 System.out.println(list3.get(1));

结果为:2

这里我们要注意Arrays.asList(strArray)是把字符串类型的转为链表。如果是Arrays.asList(aaa)那么就是int型转为链表,是失败的。不支持int[]转链表(但是支持Integer[]转链表)注意:Arrays.asList()方法中是只支持泛型的,就是引用类型,所以int这种基本类型不支持。Character也是支持转链表。但是转为链表只支持用get去查,不支持删和加。

2.数组转list,转后支持增删

 String[] strArray = new String[]{"1","2"};
 int[] aaa = new int[]{0,1,2,3,4};
 Character[] character = new Character[]{'1','2'};
 List list3 = new ArrayList<>(Arrays.asList(strArray));
 list3.add("9");
 System.out.println(list3.get(2));

结果为:9

String[] string = new String[2];
List list4 = new ArrayList<>(Arrays.asList(string)) ;
list4.add("9");
System.out.println(list4);

结果为:[null, null, 9]

如果实行加操作

list4.set(0,1);

结果为:[1, null, 9];注意这里的(0,1)中的1为int也是成功的,set后的那个参数为object类型。

3.数组转list最高效率方法

String[] strArray = new String[2];
ArrayList arrayList3 = new ArrayList<>(strArray.length);
Collections.addAll(arrayList3, strArray);
arrayList3.add("1");

结果为:[null, null, 1]

利用Collections方法的addAll(目标链表,数组)。首先要建立一个链表长度和数组长度一样

2.list转数组

1.toArray方法

List list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
    list.add(i);
}
Integer[] array = list.toArray(new Integer[0]);
for(int i : array){
    System.out.println(i);
}

结果为:0,1,2,3,4

注意:list.toArray()方法也是只支持泛型的还有就是new Integer[0]值得思考一秒钟,为啥要Integer[0]

2.stream方法

String[] array2 = list1.stream().toArray(String[]::new);
System.out.println(Arrays.toString(array2));

数组的输出方法Arrays.toString

3.数组转set

    Set set = new HashSet<>(Arrays.asList(str));
    
    //2. stream
    Set set2 = Stream.of(str).collect(Collectors.toSet());

4.set转数组

    String[] array = set.toArray(new String[0]);
    //2. stream
    String[] array2 = set.stream().toArray(String[]::new);

5.list转set

Set set = new HashSet<>(list);
​
Set set2 = list.stream().collect(Collectors.toSet());

6.set转list

    List list = new ArrayList<>(set);
    
    //2. stream 
    List list2 = set.stream().collect(Collectors.toList());
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/927232.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号