在Java中,String
、List
和数组(如 String[]
)之间的转换是常见的操作。下面是如何在它们之间进行转换的示例。
1. String 转 List
通常,你不会直接将一个完整的String
转换为List
,但你可以将包含多个元素的字符串(如由逗号分隔的字符串)分割成多个部分,并将这些部分添加到List
中。
String str = "a,b,c,d";
List<String> list = Arrays.asList(str.split(","));
// 注意:Arrays.asList 返回的列表是固定大小的,如果需要可变列表,请使用 ArrayList
List<String> mutableList = new ArrayList<>(Arrays.asList(str.split(",")));
2. List 转 String
你可以使用StringBuilder
或String.join
方法将List
中的元素连接成一个字符串。
List<String> list = Arrays.asList("a", "b", "c", "d");
String str = String.join(",", list); // 输出 "a,b,c,d"
或者使用StringBuilder
:
StringBuilder sb = new StringBuilder();
for (String s : list) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append(s);
}
String str = sb.toString(); // 输出 "a,b,c,d"
3. List 转数组
你可以使用List
的toArray
方法将List
转换为数组。
List<String> list = Arrays.asList("a", "b", "c", "d");
String[] array = list.toArray(new String[0]); // 或者使用 list.toArray(new String[list.size()]);
注意:如果你知道列表的大小,传递一个正确大小的数组给toArray
可以提高性能,因为它可以避免额外的数组复制操作。
4. 数组 转 List
你可以使用Arrays.asList
方法将数组转换为List
。但请注意,返回的列表是固定大小的,如果你需要可变列表,应该将其转换为ArrayList
。
String[] array = {"a", "b", "c", "d"};
List<String> list = Arrays.asList(array); // 固定大小的列表
List<String> mutableList = new ArrayList<>(Arrays.asList(array)); // 可变列表
注意事项
- 当使用
Arrays.asList
返回的列表时,请注意它返回的列表是固定大小的,不支持add
或remove
操作(会抛出UnsupportedOperationException
)。