总览图
数组转List
Arrays.asList()
直接使用该方法返回的List不能添加和删除元素。不推荐使用。
String[] string_array = {"a", "b", "c"};
List<String> string_list = Arrays.asList(string_array);
System.out.println(string_list.toString());
但是,有个骚操作可以了解一下,通过asList()返回的列表再new一个ArrayList()就可以曲线救国了
String[] string_array = {"a", "b", "c"};
List<String> string_list = new ArrayList(Arrays.asList(string_array));
System.out.println(string_list.toString());
Collections.addAll()
此方法可以完全使用List的所有方法,推荐使用!!
String[] string_array = {"a", "b", "c"};
List<String> string_list = new ArrayList<>();
string_list.add("0");
Collections.addAll(string_list, string_array);
string_list.add("d");
System.out.println(string_list.toString());
// 输出
[0, a, b, c, d]
List.of()包装器
Java9引入的静态方法
String[] names = {"a", "b", "c"};
List<String> list = new ArrayList<>(List.of(names));
list.add("d");
System.out.println(string_list.toString());
// 输出
[a, b, c, d]
List转数组
通过List的toArray()方法
List<String> string_list = new ArrayList<>();
string_list.add("a");
string_list.add("b");
string_list.add("c");
string_list.add("d");
// new String[0]中的0不代表申请数组长度!,这里的0实际上被toArray()方法替换为List.size()。
String[] string_array = string_list.toArray(new String[0]);
System.out.println(Arrays.toString(string_array));
// 输出
[a, b, c, d]
List转Set
通过构造函数传入List参数即可
List<String> string_list = new ArrayList<>();
string_list.add("a");
string_list.add("b");
string_list.add("c");
string_list.add("d");
Set<String> string_set = new HashSet<>(string_list);
System.out.println(string_set.toString());
// 输出
[a, b, c, d]
Set转List
通过在List的构造函数传入Set参数即可。
Set<String> string_set = new HashSet<>();
string_set.add("a");
string_set.add("b");
string_set.add("c");
string_set.add("d");
List<String> string_list = new ArrayList<>(string_set);
Set转数组
通过Set的toArray()方法
Set<String> string_set = new HashSet<>();
string_set.add("a");
string_set.add("b");
string_set.add("c");
string_set.add("d");
String[] string_array = string_set.toArray(new String[0]);
System.out.println(Arrays.toString(string_array));
数组转Set
String[] string_array = {"a", "b", "c", "c"};
Set<String> string_set = new HashSet<>();
Collections.addAll(string_set, string_array);
System.out.println(string_set.toString());
// 输出
[a, b, c]