String []str={"1","2","3"};
List<String> list = Arrays.asList(str);
for (String s : list) {
System.out.println(s);
}
String[] str2 = (String[]) list.toArray();
for (String s : str2) {
System.out.println(s);
}
在Java中,数组和集合之间的转换是相对常见的操作。以下是如何执行这些转换的示例:
数组转集合
对于非基本数据类型数组,你可以使用Arrays.asList()方法直接转换为一个固定大小的集合。
String[] array = {"A", "B", "C"};
List<String> list = Arrays.asList(array);
这里需要注意的是,通过Arrays.asList()方法转换得到的列表是固定大小的,对其进行添加或删除操作会抛出UnsupportedOperationException。
如果你需要一个可变的列表,可以这样做:
String[] array = {"A", "B", "C"};
List<String> list = new ArrayList<>(Arrays.asList(array));
对于基本数据类型数组,由于Arrays.asList()不能直接作用于基本数据类型数组,需要进行手动的包装转换。
int[] intArray = {1, 2, 3};
List<Integer> intList = new ArrayList<>();
for (int i : intArray) {
intList.add(i);
}
集合转数组
如果你想将集合转换为数组,可以使用集合的toArray()方法。
将一个List转换为数组:
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
// To an array of String
String[] array = list.toArray(new String[0]);
注意,在toArray()方法中传入的数组如果大小小于集合的大小,那么toArray()方法会分配一个新的数组空间来存储集合数据;如果传入的数组大小大于或等于集合的大小,则会在传入的数组中存储集合数据,并且如果传入数组有剩余空间,数组后面的元素将会被设置为null。
对于集合中包含基本数据类型包装类的情况,不能直接转换成基本数据类型的数组,而需要转换为对应的包装类数组。如果需要转换为基本数据类型数组,就需要手动解包装。
List<Integer> intList = new ArrayList<>();
intList.add(1);
intList.add(2);
intList.add(3);
// To an array of Integer
Integer[] integerArray = intList.toArray(new Integer[0]);
// To an array of int (manually unboxing)
int[] intArray = new int[intList.size()];
for (int i = 0; i < intList.size(); i++) {
intArray[i] = intList.get(i);
}
通过这些示例,你可以看出数组和集合之间的转换是简单的,但需要注意它们之间的差异,特别是在处理基本数据类型时。
这篇博客介绍了在Java中如何将数组转换为集合以及将集合转换为数组的方法。对于非基本数据类型,可以使用Arrays.asList()直接转换,但要注意得到的列表是固定大小的。若需要可变列表,需进一步转换。对于基本数据类型,需要手动包装。集合转数组时,可通过toArray()方法,并注意传入数组的大小。此外,还提到了基本数据类型数组与包装类数组之间的转换。
630

被折叠的 条评论
为什么被折叠?



