Java List转换成String数组几种实现方式详解
问题描述
在Java开发中,我们经常会遇到将List转换成String数组的需求,比如将数据库查询结果转换为字符串数组进行后续处理。那么如何实现List转换为String数组呢?本文将详细介绍几种实现方式,以供大家参考使用。
方案一:使用循环遍历
最基本的实现方式是使用循环遍历List,逐个转换为字符串,然后添加到String数组中。代码如下:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
String[] array = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
System.out.println(Arrays.toString(array)); // [apple, banana, orange]
方案二:使用List的toArray()方法
List类提供了一个toArray()方法,可以将List转换为数组,代码如下:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
String[] array = list.toArray(new String[0]);
System.out.println(Arrays.toString(array)); // [apple, banana, orange]
需要注意的是,toArray()方法的参数是一个具有相同类型的空数组。如果参数数组长度小于List的长度,则会创建一个新的数组来存储元素。如果参数数组长度大于或等于List的长度,则会将元素添加到参数数组中。
方案三:使用Stream和toArray()方法
Java 8引入了Stream API,可以使用stream()方法将List转换为Stream,然后使用toArray()方法将Stream转换为数组,代码如下:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
String[] array = list.stream().toArray(String[]::new);
System.out.println(Arrays.toString(array)); // [apple, banana, orange]
方案四:使用StringUtils类的toArray()方法
Apache Commons Lang库提供了StringUtils类,其中有一个toArray()方法,可以将List转换为数组,代码如下:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
String[] array = StringUtils.toArray(list);
System.out.println(Arrays.toString(array)); // [apple, banana, orange]
需要注意的是,使用StringUtils的toArray()方法需先导入Apache Commons Lang库。
总结
本文介绍了Java List转换成String数组的四种实现方式,包括循环遍历、List的toArray()方法、Stream和toArray()方法以及StringUtils类的toArray()方法。在实际应用中,可以根据实际情况选择合适的方法进行转换。
示例说明
假设有一个包含学生姓名的List,需要将其转换为String数组,代码如下:
List<String> studentList = new ArrayList<>();
studentList.add("张三");
studentList.add("李四");
studentList.add("王五");
String[] studentArray = studentList.stream().toArray(String[]::new);
System.out.println("学生姓名数组:" + Arrays.toString(studentArray));
输出结果为:学生姓名数组:[张三, 李四, 王五]
再比如有一个包含厂商名称的List,需要将其转换为String数组并使用StringUtils.join()方法拼接成以逗号分隔的字符串,代码如下:
List<String> vendorList = new ArrayList<>();
vendorList.add("华为");
vendorList.add("小米");
vendorList.add("OPPO");
String[] vendorArray = StringUtils.toArray(vendorList);
String vendorString = StringUtils.join(vendorArray, ",");
System.out.println("厂商名称字符串:" + vendorString);
输出结果为:厂商名称字符串:华为,小米,OPPO
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java List转换成String数组几种实现方式详解 - Python技术站