java数组和集合转换_集合怎么转化为数组

2022-09-28 10:39:09 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

数组集合转换

一、初始化的简便方法

数组

代码语言:javascript复制
//设置初始化值
int[] p = new int[]{ 
   1,2,3};
int[] ins = { 
   1,2,3};
String [] dog = { 
   "Jimmy","Gougou","Doggy"};
//不设置初始化值
int[] q = new int[3];
q[0] = 5;

List集合

1、常规方法
代码语言:javascript复制
List<String> languages = new ArrayList<>();
languages.add("Java");
languages.add("PHP");
languages.add("Python");
2、Arrays 工具类
代码语言:javascript复制
//这种方式添加的是不可变的 List, 即不能添加、删除等操作
List<String> jdks = Arrays.asList("JDK6", "JDK8", "JDK10");

如果要可变,可以使用 ArrayList 再包装一下

代码语言:javascript复制
List<String> jdks = new ArrayList<>(Arrays.asList("JDK6", "JDK8", "JDK10"));
jdks.add("JDK14");
3、Collections 工具类
代码语言:javascript复制
//这种方式添加的是不可变的、复制某个元素N遍的工具类
List<String> apples = Collections.nCopies(3, "apple");
System.out.println(apples);//[apple, apple, apple]
代码语言:javascript复制
//初始化单个对象的 List 工具类,这种方式也是不可变的,集合内只能有一个元素
List<String> cat = Collections.singletonList("cat");
System.out.println(cat);
代码语言:javascript复制
//创建空 List 的工具类,没有默认容量,节省空间
List<String> cat = Collections.emptyList();
4、匿名内部类
代码语言:javascript复制
List<String> names = new ArrayList<>() { 
   { 
   
    add("Tom");
    add("Sally");
    add("John");
}};
System.out.println(names);
5、JDK8 Stream
代码语言:javascript复制
//引用类型
List<String> colors = Stream.of("blue", "red", "yellow").collect(Collectors.toList());
//基本数据类型
List<Integer> num = Stream.of(1,2,3).collect(Collectors.toList());

Arrays工具类1.8方法

代码语言:javascript复制
List<Integer> collect = Arrays.stream(new int[]{ 
   1, 2, 3}).boxed().collect(Collectors.toList());
6、JDK 9 List.of
代码语言:javascript复制
//不可变的 List
List<String> cups = List.of("A", "B", "C");
System.out.println(cups);

二、数组集合相互转化

1、数组转集合

元素为引用类型
代码语言:javascript复制
//List不可变,如有需要,可以加一层new ArrayList封装
List<String> string = Arrays.asList( "hello", "world");
System.out.println(string);
元素为基本类型
代码语言:javascript复制
List<Double> collect = Arrays.stream(new double[]{ 
   1.0, 2.0, 3.0}).boxed().collect(Collectors.toList());

2、集合转数组

元素为引用类型
代码语言:javascript复制
List<String> cups = List.of("A", "B", "C");
System.out.println(cups);
String[] s = cups.toArray(new String[3]);
//打印输出
Arrays.stream(s).forEach(System.out::println);
元素为基本类型
代码语言:javascript复制
//Double
List<Double> num = List.of(1.0, 2.0, 3.0);
double[] doubles = num.stream().mapToDouble(Double::valueOf).toArray();
//Integer
List<Integer> ins = List.of(1, 2, 3);
int[] ints = ins.stream().mapToInt(Integer::valueOf).toArray();

参考:

何其小静 – 博客园 (cnblogs.com)

会偷袭的猫 – 博客园 (cnblogs.com)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193106.html原文链接:https://javaforall.cn

0 人点赞