Java核心API——collection类的常见方法

打印 上一主题 下一主题

主题 503|帖子 503|积分 1509

1、数组与集合之间的转换

  1. * 集合转换为数组
  2. * Collection提供了一个方法toArray。可以将当前集合转换为一个数组
复制代码
  1.         Collection<String> array=new ArrayList<>();
  2.         array.add("1");
  3.         array.add("2");
  4.         array.add("3");
  5.         array.add("4");
  6.         System.out.println(array);
  7.         //        Object[] array = c.toArray();//返回对象数组不方便
  8.         /*
  9.             重载的toArray方法要求我们传入一个需要转换的数组
  10.             长度通常与集合size一致即可。
  11.             如果数组长度小于集合size,那么toArray方法内部会创建
  12.             一个与该数组类型且与集合size等长的数组将其返回
  13.          */
  14.         String[] array1 = array.toArray(new String[array.size()]);
  15. //        String[] array = c.toArray(new String[0]);
  16.         System.out.println(Arrays.toString(array1));
  17.         for(String s:array){
  18.             System.out.println(s);
  19.         }
复制代码
 
  1. * 数组转为集合
  2. * 数组的工具类Arrays提供了应该静态方法asList
  3. * 可以讲数组转为一个List集合
复制代码
  1.         String array[] = {"11", "22", "33"};
  2.         System.out.println("array:" + Arrays.toString(array));
  3.         List<String> list = Arrays.asList(array);
  4.         System.out.println("list" + list);
  5.         /*
  6.             asList方法内部:
  7.             创建一个名为ArrayList的实例(注意,它不是java.util.ArrayList
  8.             而是Arrays自己定义的一个内部类)。该实例会直接引用传入的数组。
  9.             因此对该集合的操作就是对该数组的操作。
  10.          */
  11.         //注意,对集合元素的操作就是对原数组元素的操作
  12.         list.set(2, "三");
  13.         System.out.println("list" + list);
  14.         System.out.println("array:" + Arrays.toString(array));
  15.         //因为数组定长,所以试图改变长度的操作都是不支持的,会抛出不支持操作异常(add、remove都不行)
  16.         //java.lang.UnsupportedOperationException
  17.         //list.add("七");
  18. //        System.out.println("list" + list);
  19. //        System.out.println("array:" + Arrays.toString(array));
  20. //        list.remove("三");
  21. //        System.out.println("list" + list);
  22. //        System.out.println("array:" + Arrays.toString(array));
  23.         /*
  24.             可以自行创建一个新集合,然后包含前面数组转换的集合,这样就可以
  25.             随意的修改元素了且不会对原数组产生影响。
  26.          */
  27.         // List<String> list2 = new ArrayList<>();
  28.         // list2.addAll(list);
  29.         List<String> list2=new ArrayList<>(list);
  30.         list2.add("七");
  31.         System.out.println("list2:"+list2);
  32.         list2.remove("三");
  33.         System.out.println("list2:"+list2);
  34.          /*
  35.             所有的集合都支持一种参数为Collection的构造器
  36.             作用是在创建该集合的同时就包含参数传入的集合中所有元素
  37.             List<String> list2 = new ArrayList<>(list);
  38.             上面的实例化等同于:
  39.             List<String> list2 = new ArrayList<>();
  40.             list2.addAll(list);
  41.          */
复制代码
 
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表