java数组转set_Java-[List、Set、数组相互转换]

Java-[List、Set、数组相互转换]

FangShiRui • 2020 年 06 月 18 日

Loading...

# 总览图

![一图胜千言](https://s1.ax1x.com/2020/06/19/Nu6k9S.png)

----------

## 数组转List

#### Arrays.asList()

直接使用该方法返回的List不能添加和删除元素。不推荐使用。

```java

String[] string_array = {"a", "b", "c"};

List string_list = Arrays.asList(string_array);

System.out.println(string_list.toString());

```

**但是,有个骚操作可以了解一下**,通过asList()返回的列表再new一个ArrayList()就可以曲线救国了

```java

String[] string_array = {"a", "b", "c"};

List string_list = new ArrayList(Arrays.asList(string_array));

System.out.println(string_list.toString());

```

#### Collections.addAll()

此方法可以完全使用List的所有方法,推荐使用!!

```java

String[] string_array = {"a", "b", "c"};

List 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引入的静态方法

```java

String[] names = {"a", "b", "c"};

List list = new ArrayList<>(List.of(names));

list.add("d");

System.out.println(string_list.toString());

// 输出

[a, b, c, d]

```

----------

## List转数组

通过List的toArray()方法

```java

List 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参数即可

```java

List string_list = new ArrayList<>();

string_list.add("a");

string_list.add("b");

string_list.add("c");

string_list.add("d");

Set string_set = new HashSet<>(string_list);

System.out.println(string_set.toString());

// 输出

[a, b, c, d]

```

----------

## Set转List

通过在List的构造函数传入Set参数即可。

```java

Set string_set = new HashSet<>();

string_set.add("a");

string_set.add("b");

string_set.add("c");

string_set.add("d");

List string_list = new ArrayList<>(string_set);

```

----------

## Set转数组

```java

通过Set的toArray()方法

Set 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

```java

String[] string_array = {"a", "b", "c", "c"};

Set string_set = new HashSet<>();

Collections.addAll(string_set, string_array);

System.out.println(string_set.toString());

// 输出

[a, b, c]

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值