Java List, Set, Map, 数组间的相互转换详解
在Java中,我们通常会使用List、Set、Map、数组这几种数据结构。他们各自有自己的特点和用途。有时我们需要将它们之间相互进行转换,下面是转换的方法和示例说明。
1. List 和 数组的相互转换
List 转 数组
使用 List 的 toArray 方法可以将 List 转为数组,方法如下:
List<String> strList = new ArrayList<>();
strList.add("Java");
strList.add("Scala");
strList.add("Python");
String[] strArray = strList.toArray(new String[strList.size()]);
数组转 List
使用 Arrays.asList 可以将数组转为 List,方法如下:
String[] strArray = {"Java", "Scala", "Python"};
List<String> strList = Arrays.asList(strArray);
2. Set 和 数组的相互转换
Set 转 数组
使用 Set 的 toArray 方法可以将 Set 转为数组,方法如下:
Set<String> strSet = new HashSet<>();
strSet.add("Java");
strSet.add("Scala");
strSet.add("Python");
String[] strArray = strSet.toArray(new String[strSet.size()]);
数组转 Set
使用 Arrays.stream 将数组转为 Stream,再使用 Collectors.toSet 将 Stream 转为 Set,方法如下:
String[] strArray = {"Java", "Scala", "Python"};
Set<String> strSet = Arrays.stream(strArray).collect(Collectors.toSet());
3. Map 和数组的相互转换
Map 转 数组
将 Map 的 key 或 value 转为数组,方法如下:
Map<String, Integer> map = new HashMap<>();
map.put("Java", 10);
map.put("Scala", 20);
map.put("Python", 30);
String[] keys = map.keySet().toArray(new String[map.size()]);
Integer[] values = map.values().toArray(new Integer[map.size()]);
数组转 Map
将两个数组合并为 Map,方法如下:
String[] keys = {"Java", "Scala", "Python"};
Integer[] values = {10, 20, 30};
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < keys.length; i++) {
map.put(keys[i], values[i]);
}
4. List 和 Set 的相互转换
List 转 Set
使用 HashSet 的构造函数可以将 List 转为 Set,方法如下:
List<String> strList = new ArrayList<>();
strList.add("Java");
strList.add("Scala");
strList.add("Python");
Set<String> strSet = new HashSet<>(strList);
Set 转 List
使用 ArrayList 的构造函数可以将 Set 转为 List,方法如下:
Set<String> strSet = new HashSet<>();
strSet.add("Java");
strSet.add("Scala");
strSet.add("Python");
List<String> strList = new ArrayList<>(strSet);
5. 示例说明
示例 1:将 List 转为数组,再将数组转为 Set
List<String> strList = new ArrayList<>();
strList.add("Java");
strList.add("Scala");
strList.add("Python");
String[] strArray = strList.toArray(new String[strList.size()]);
Set<String> strSet = new HashSet<>(Arrays.asList(strArray));
System.out.println(strSet);
输出结果:
[Java, Scala, Python]
示例 2:将 Map 中的 key 和 value 分别转为数组
Map<String, Integer> map = new HashMap<>();
map.put("Java", 10);
map.put("Scala", 20);
map.put("Python", 30);
String[] keys = map.keySet().toArray(new String[map.size()]);
Integer[] values = map.values().toArray(new Integer[map.size()]);
System.out.println(Arrays.toString(keys) + " " + Arrays.toString(values));
输出结果:
[Java, Scala, Python] [10, 20, 30]
以上就是 Java List、Set、Map、数组之间相互转换的详细攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java list,set,map,数组间的相互转换详解 - Python技术站