下面为你讲解Java中List、Array、Map、Set等集合相互转换的完整攻略。
一、List与Array之间相互转换
1. 将List转换为数组
使用 List
的 toArray()
方法可以将 List
转换为数组。示例代码如下:
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
String[] array = list.toArray(new String[0]);
System.out.println(Arrays.toString(array)); // [Java, Python, C++]
在 toArray()
方法中传入一个空的类型为 String
的数组作为参数,然后将 List
转换为该数组即可。
2. 将数组转换为List
使用 Arrays
类的 asList()
方法可以将数组转换为 List
。示例代码如下:
String[] array = {"Java", "Python", "C++"};
List<String> list = Arrays.asList(array);
System.out.println(list); // [Java, Python, C++]
直接将数组作为参数传入 asList()
方法中即可。
二、List与Set之间相互转换
1. 将List转换为Set
使用 HashSet
或 TreeSet
来将 List
转换为 Set
。示例代码如下:
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
Set<String> set1 = new HashSet<>(list);
System.out.println(set1); // [Java, Python, C++]
Set<String> set2 = new TreeSet<>(list);
System.out.println(set2); // [C++, Java, Python]
上面示例中分别用 HashSet
和 TreeSet
来创建 Set
对象,然后将 List
作为构造方法的参数传入,即可完成转换。
2. 将Set转换为List
使用 ArrayList
来将 Set
转换为 List
。示例代码如下:
Set<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
set.add("C++");
List<String> list = new ArrayList<>(set);
System.out.println(list); // [Java, Python, C++]
直接将 Set
作为构造方法的参数传入 ArrayList
即可完成转换。
三、List与Map之间相互转换
1. 将List转换为Map
将 List
中的元素转换为键值对,然后使用 HashMap
或 TreeMap
来创建 Map
对象。示例代码如下:
// List中的元素是字符串,形式如“key:value”
List<String> list = new ArrayList<>();
list.add("Java:1");
list.add("Python:2");
list.add("C++:3");
Map<String, Integer> map1 = new HashMap<>();
Map<String, Integer> map2 = new TreeMap<>();
for (String s : list) {
String[] arr = s.split(":");
map1.put(arr[0], Integer.valueOf(arr[1]));
map2.put(arr[0], Integer.valueOf(arr[1]));
}
System.out.println(map1); // {Java=1, Python=2, C++=3}
System.out.println(map2); // {C++=3, Java=1, Python=2}
上例中,首先创建一个 List
,然后将 List
中的每个元素利用 split()
方法将键值对拆分开来,再将拆分后的键值对添加到 Map
中,即可完成 List
到 Map
的转换。
2. 将Map转换为List
利用 Map
的 entrySet()
方法将键值对转换为 List
。示例代码如下:
Map<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
map.put("C++", 3);
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
System.out.println(list); // [Java=1, Python=2, C++=3]
上例中,使用 entrySet()
方法将 Map
中的键值对转换为 Set
,然后将 Set
转换为 List
即可完成 Map
到 List
的转换。
以上就是Java中List、Array、Map、Set等集合相互转换的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中List、Array、Map、Set等集合相互转换 - Python技术站