zoukankan      html  css  js  c++  java
  • Array.asList:数组转list

    String s[]={"aa","bb","cc"};  
    List<String> sList=Arrays.asList(s);  
    for(String str:sList){//能遍历出各个元素  
        System.out.println(str);  
    }  
    System.out.println(sList.size());//为3  
      
    System.out.println("- - - - - - - - - - -");  
      
    int i[]={11,22,33};  
    List intList=Arrays.asList(i);  //intList中就有一个Integer数组类型的对象,整个数组作为一个元素存进去的  
    for(Object o:intList){//就一个元素  
        System.out.println(o.toString());  
    }  
      
    System.out.println("- - - - - - - - - - -");  
      
    Integer ob[]={11,22,33};  
    List<Integer> objList=Arrays.asList(ob);  //数组里的每一个元素都是作为list中的一个元素  
    for(int a:objList){  
        System.out.println(a);  
    }  
      
    System.out.println("- - - - - - - - - - -");  
      
    //objList.remove(0);//asList()返回的是arrays中私有的终极ArrayList类型,它有set,get,contains方法,但没有增加和删除元素的方法,所以大小固定,会报错  
    //objList.add(0);//由于asList返回的list的实现类中无add方法,所以会报错  
    

     输出结果:

    1. aa  
    2. bb  
    3. cc  
    4. 3  
    5. - - - - - - - - - - -  
    6. [I@287efdd8  
    7. - - - - - - - - - - -  
    8. 11  
    9. 22  
    10. 33  
    11. - - - - - - - - - - -  

    如果想根据数组得到一个新的正常的list,当然可以循环一个一个添加,也可以才有以下2个种方法:

     ArrayList<Integer> copyArrays=new ArrayList<Integer>(Arrays.asList(ob));//这样就是得到一个新的list,可对其进行add,remove了  
    copyArrays.add(222);//正常,不会报错  
      
    Collections.addAll(new ArrayList<Integer>(5), ob);//或者新建一个空的list,把要转换的数组用Collections.addAll添加进去 
    

     

    另外讨论下Collections.addAll和list.addAll

     List<Integer> list1 = new ArrayList<Integer>() {{add(0); add(-1);}};  
    	        List<Integer> list2 = new ArrayList<Integer>(Arrays.asList(2, 4, -9));  
    	  
    	        list1.addAll(list2);  
    	        System.out.println(list1);  
    	        list2.set(0, 100000);  
    	        System.out.println(list1);//深复制  
    	        System.out.println();  
    	  
    	        //功能性展示  
    	        Collections.addAll(list2, 34, 67, 78);  
    	        System.out.println(list2);  
    	        list2.addAll(Arrays.asList(34, 67, 78));  
    	        System.out.println(list2);  
    	        System.out.println();  
    	  
    

    结果:

    [0, -1, 2, 4, -9]
    [0, -1, 2, 4, -9]

    [100000, 4, -9, 34, 67, 78]
    [100000, 4, -9, 34, 67, 78, 34, 67, 78]

     

  • 相关阅读:
    python
    weui 问题
    Mac 问题
    ORM存储过程和实体类代码生成工具
    说说QQ空间SEO
    用户体验走嘴和走心的区别
    一切不以用户为中心的O2O 都是耍流氓
    10分钟制作自己的手机QQ
    一无所有其实没什么
    别人的鞋不一定合脚
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/6751975.html
Copyright © 2011-2022 走看看