Java中数组,List,Set的相互转换注意点(样例)-阿里云开发者社区

开发者社区> anmypeng1> 正文

Java中数组,List,Set的相互转换注意点(样例)

简介:
+关注继续查看

一,突然想起了,贴个图先
image

二,样例
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import com.google.common.primitives.Ints;

public class SmallProgram
{

public static void transfArrayListSet(int[] a, String[] b){
    //========1,数组转换成list asList
    //①对非简单类型数组而言:转换后的list不能进行修改长度操作,否则会抛出java.lang.UnsupportedOperationException异常(因为asList返回的是一个视图,即:所有list的操作都会反应在原数组上,且这个list是定长的)
    List<String> arr2List4Str = Arrays.asList(b);
    //copyB.add("There will be an ERROR : UnsupportedOperationException");
    //copyB.remove(0);//UnsupportedOperationException
    
    //②对简单类型而言:不能把基本数据类型转换成列表,这里转的时候结果列表里面只有一个int[]类型的数组元素,String等复杂数据类型是可以这样使用的
    //List<int[]> copyA1 = Arrays.asList(a);
    //基本数据类型转换可以使用google的guava下面Ints类的方法,但是转换后的list不能进行修改长度操作,否则会抛出java.lang.UnsupportedOperationException异常(因为asList返回的是一个视图,即:所有list的操作都会反应在原数组上,且这个list是定长的)
    List<Integer> arr2List4Int = Ints.asList(a);
    //copyA2.add(1);//UnsupportedOperationException
    //copyA2.remove(0);//UnsupportedOperationException
    
    //========2,list转数组 toArray
    Object[] list2Arr = arr2List4Int.toArray();
    System.out.println(list2Arr[0]);
    
    //========3,数组转set 通过list中转
    Set<String> arr2Set4Str = new HashSet<String>(Arrays.asList(b));
    arr2Set4Str.add("5");
    arr2Set4Str.remove(0);
    Set<Integer> arr2Set4Int = new HashSet<Integer>(Ints.asList(a));
    arr2Set4Int.add(5);
    arr2Set4Int.remove(0);
    
    //========4,set转数组 toArray
    Object[] set2Arr4Str = arr2Set4Str.toArray();
    Object[] set2Arr4Int = arr2Set4Int.toArray();
    
    //========5,set转list 通过构造方法
    List<String> set2List4Str = new ArrayList<String>(arr2Set4Str);
    set2List4Str.add("6");
    set2List4Str.remove(0);
    List<Integer> set2List4Int = new ArrayList<Integer>(arr2Set4Int);
    set2List4Int.add(6);
    set2List4Int.remove(0);
    
    //========6,list转set 通过构造方法
    Set<String> list2Set4Str = new HashSet<String>(set2List4Str);
    Set<Integer> list2Set4Int = new HashSet<Integer>(set2List4Int);
}

/**
 * @param args
 */
public static void main(String[] args)
{
    int[] intArr = new int[]{1,2,3};
    String[] strArr = new String[]{"1","2","3"};
    SmallProgram. transfArrayListSet(intArr,strArr);
}

}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
js中ip地址与整数的相互转换
转载地址 //IP转成整型function _ip2int(ip) {    var num = 0;    ip = ip.split(".");    num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Num...
678 0
利用泛型实现通用的list和array转换
这里利用了Array.newInstance(..)方法,但还有一个问题,当List的长度为0的时候,是获得不了T的具体class的。好在长度为0的数组没有意义,所以干脆返回了null。 代码如下: public static T[] getArray(List collection) {if (collection == null || collection.
520 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7735 0
基于Python的mysql与excel互相转换
1.mysql转为excel getConn函数获取mysql连接,第1个参数database为要连接的数据库。 mysql2excel函数完成主要转换功能,第1个参数database为要连接的数据库,第2个参数为要转换的数据表,第3个参数为要保存的excel文件名。
1407 0
java编码转换的详细过程
 常见的JAVA程序包括以下类别:*直接在console上运行的类(包括可视化界面的类)*JSP代码类(注:JSP是Servlets类的变型)*Servelets类*EJB类*其它不可以直接运行的支持类 这些类文件中,都有可能含有中文字符串,并且常用前三类JAVA程序和用户直接交互,用于输出和输入字符,如:在JSP和Servlet中得到客户端送来的字符,这些字符也包括中文字符。
996 0
+关注
9
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载