zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JAVA转换集合数组 怎么 转化
2023-06-13 09:13:26 时间

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

数组集合转换

一、初始化的简便方法

数组

//设置初始化值
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、常规方法

List<String> languages = new ArrayList<>();
languages.add("Java");
languages.add("PHP");
languages.add("Python");

2、Arrays 工具类

//这种方式添加的是不可变的 List, 即不能添加、删除等操作
List<String> jdks = Arrays.asList("JDK6", "JDK8", "JDK10");

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

List<String> jdks = new ArrayList<>(Arrays.asList("JDK6", "JDK8", "JDK10"));
jdks.add("JDK14");

3、Collections 工具类

//这种方式添加的是不可变的、复制某个元素N遍的工具类
List<String> apples = Collections.nCopies(3, "apple");
System.out.println(apples);//[apple, apple, apple]
//初始化单个对象的 List 工具类,这种方式也是不可变的,集合内只能有一个元素
List<String> cat = Collections.singletonList("cat");
System.out.println(cat);
//创建空 List 的工具类,没有默认容量,节省空间
List<String> cat = Collections.emptyList();

4、匿名内部类

List<String> names = new ArrayList<>() { 
   { 
   
    add("Tom");
    add("Sally");
    add("John");
}};
System.out.println(names);

5、JDK8 Stream

//引用类型
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方法

List<Integer> collect = Arrays.stream(new int[]{ 
   1, 2, 3}).boxed().collect(Collectors.toList());

6、JDK 9 List.of

//不可变的 List
List<String> cups = List.of("A", "B", "C");
System.out.println(cups);

二、数组集合相互转化

1、数组转集合

元素为引用类型

//List不可变,如有需要,可以加一层new ArrayList封装
List<String> string = Arrays.asList( "hello", "world");
System.out.println(string);

元素为基本类型

List<Double> collect = Arrays.stream(new double[]{ 
   1.0, 2.0, 3.0}).boxed().collect(Collectors.toList());

2、集合转数组

元素为引用类型

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);

元素为基本类型

//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