java 数组、List、Set互相转化

1 Maven依赖

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>20.0</version>
        </dependency>

2 其他类型转化成数组

2.1 List转化成数组

//先准备一个List
List<String> testList=new ArrayList<>();
testList.add("a");
testList.add("b");
testList.add("c");
//List转数组
String[] strs1=testList.toArray(new String[testList.size()]);

2.2 Set转化成数组

Set set=new HashSet<String>();
//Map转List
List<String> testList=new ArrayList<>();
//List转数组
String[] strs1=testList.toArray(new String[testList.size()]);

3 其他类型转化成List

3.1 数组转化成List

3.1.1 byte

byte[] bytes = new byte[1];
List<Byte> byteList1 = Bytes.asList(bytes);

3.1.2 其他类型

//准备一个String数组
String[] strs = {"aa","bb","cc"};
//String数组转List第一种方法
List<String> strsToList2=Arrays.asList(strs);
//String数组转List第二种方法(推荐)
List<String> strsToList2=new ArrayList(Arrays.asList(strs));

3.2 Set转化成List

Set set=new HashSet<String>();
List<String> list = new ArrayList<>(set);

4 其他类型转化成Set

4.1 数组转化成Set

//数组转List,List转Set
String[] s = new String[]{"A", "B", "C", "D","E"};
Set set = new HashSet<>(Arrays.asList(s));

4.2 List转化成Set

List<String> testList=new ArrayList<>();
Set<String> set = new HashSet<>(list);

注:Arrays.asList()返回的对象不支持add()和remove()方法。具体原因请参考以下博客。

Java Arrays.asList()需要注意的坑(不支持add()和remove())

### Java中将数组转换为集合 在Java编程环境中,为了实现更灵活的数据处理方式,通常会涉及到将数组这种固定大小的数据结构转化为能够动态调整容量的集合。针对这一需求,在标准库的支持下存在多种解决方案。 #### 使用`Arrays.asList()`方法创建列表视图 最简单的方式是利用`java.util.Arrays`类中的静态方法`asList(T... a)`来快速完成从数组到列表(List)类型的转变[^2]: ```java import java.util.List; import java.util.Arrays; public class ArrayToListExample { public static void main(String[] args){ String[] array = {"a", "b", "c"}; List<String> listFromArray = Arrays.asList(array); System.out.println(listFromArray); // 输出: [a, b, c] } } ``` 需要注意的是,由这种方式产生的`List`实例是一个固定的长度不可变列表;如果尝试修改其内部元素数量,则可能会抛出异常。 #### 将数组元素加入特定类型的集合——如`HashSet` 当希望获得一个去重后的无序集合时,可以选择先调用`Arrays.asList()`再将其传递给目标集合构造器,比如这里展示了一个基于哈希表实现的`Set`接口的具体形式之一——`HashSet`的例子[^3]: ```java import java.util.HashSet; import java.util.Arrays; public class ArrayToSetExample { public static void main(String[] args){ Integer[] numbers = {1, 2, 3}; HashSet<Integer> setFromNumbers = new HashSet<>(Arrays.asList(numbers)); System.out.println(setFromNumbers); // 可能输出顺序不同,因为HashSet不保证任何迭代顺序 } } ``` 上述代码片段展示了如何有效地去除重复项并将原始整型数组的内容转移到一个新的`HashSet`对象之中。 #### 转换至其他类型集合 除了以上提到的基础操作外,还可以根据实际应用场景选择不同的集合容器来进行转化工作,例如链表(`LinkedList`)、树集(`TreeSet`)等,只需替换相应的构造函数即可满足多样化的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值