下面就为你详细讲解Java集合List与Array的相互转换。
List转Array
1.使用toArray()方法
将List转为数组最简单的方式就是使用List提供的toArray()方法。该方法返回一个持有此列表元素的数组。
List<String> list = new ArrayList<>();
list.add("foo");
list.add("bar");
Object[] array = list.toArray();
String[] stringArray = Arrays.copyOf(array, array.length, String[].class);
这里的toArray()方法返回一个Object数组,需要使用Java提供的Arrays.copyOf()方法将其转换为String类型的数组。
2.使用toArray(T[] a)方法
另一种将List转换为数组的方法是使用List提供的toArray(T[] a)方法。该方法可接受一个类型为T的数组作为参数,并将列表中的元素填入该数组中。如果传入的数组长度小于列表的长度,则该方法将分配一个新的数组来保存列表中的元素。
List<String> list = new ArrayList<>();
list.add("foo");
list.add("bar");
String[] array = list.toArray(new String[0]);
需要注意的是,如果我们将一个长度为0的数组作为参数传递给toArray()方法,它将返回一个新的数组。
Array转List
使用Arrays类提供的asList()方法,可以方便地将数组转换为List。该方法返回一个固定长度的List,即不能添加和删除元素,只能通过修改数组来改变List中的内容。
String[] array = new String[]{"foo", "bar"};
List<String> list = Arrays.asList(array);
需要注意的是,asList()方法返回的List是一个固定长度的List,不能对其进行修改。
示例
示例一:List转Array
List<String> list = new ArrayList<>();
list.add("foo");
list.add("bar");
Object[] array = list.toArray();
String[] stringArray = Arrays.copyOf(array, array.length, String[].class);
System.out.println(Arrays.toString(stringArray));
输出结果为:
[foo, bar]
示例二:Array转List
String[] array = new String[]{"foo", "bar"};
List<String> list = Arrays.asList(array);
System.out.println(list);
输出结果为:
[foo, bar]
希望这份攻略对你有所帮助,如有疑问可以随时提问。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java集合List与Array的相互转换 - Python技术站