java list,set,string,数组相互转化

本文详细介绍了Java中如何进行数组与List、Set、String之间的转换,包括使用toArray()方法、Arrays工具类以及手动转换的多种方式。适用于Java开发中不同数据结构间的数据操作场景。

数组转List

          1.转换不操作(转换的集合不支持更改)

String[] str = new String[]{"yyy","uuu"};
List list = Arrays.asList(str);

              注意:调用Arrays.asList()时,其返回值类型是ArrayList,但此ArrayListArray的内部类,调用add()时,会报错:java.lang.UnsupportedOperationException,并且结果会因为array的某个值的改变而改变,故需要再次构造一个新的ArrayList

       使用场景:快速转化,传参,不改变。

        2.普通转换

String[] str = new String[]{"yyy","uuu"};
List<String> resultList = new ArrayList<>();
for (String s : str) {
    resultList.add(s);
}

        3.使用Collections.addAll()

String[] str = new String[]{"yyy","uuu"};
List<String> resultList = new ArrayList<>();
Collections.addAll(resultList,str);

     4.Java9新增方法List.of(),定义在List接口内,并且为静态方法,故可以由类名直接调用

String[] str = new String[]{"yyy","uuu"};
List<String> resultList = List.of(str );

List转数组

    1.list.toArray(); 转换为object[]      

Object[]  obj = list.toArray();

    2. list.toArray(T[] a);

Integer[] obj = list.toArray(new Integer[list.size()]);

Set转List

List<String> result = new ArrayList<>(set);

String 转List

先转数组,再转list

List<String> list=Arrays.asList("4,3,2,1".split(","))

List转Set

Set result = new HashSet(list);

数组转Set

String[] strArray= new String[]{"111", "222", "333"};

Set<String> staffsSet = new HashSet<>(Arrays.asList(strArray));

String转Set

Set<String> staffsSet = new HashSet<>(Arrays.asList("4,3,2,1".split(",")));

List转String

import org.apache.commons.lang3.StringUtils;


List<String> list = new ArrayList<String>();  
	list.add("a");  
	list.add("b");  
	list.add("c"); 
String str=StringUtils.join(list, ",");

Set转String

import org.apache.commons.lang3.StringUtils;


Set<String> result = new HashSet();
	result.add("a");  
	result.add("b");  
	result.add("c"); 
String str=StringUtils.join(result, ",");

数组转String

String[] st=new String[] {"11","22"};
String str=StringUtils.join(st, ",");

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值