总览图

一图胜千言


数组转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]
最后修改:2020 年 11 月 23 日
如果觉得我的文章对你有用,请随意赞赏