集合的各种操作 归并 排序

                List list2 = new ArrayList();
		list2.add("1");
		list2.add("2");
		list2.add("3");
		list2.add("4");
		List list3 = new ArrayList();
		list3.add("3");
		list3.add("4");
		list3.add("5");
		list3.add("6");

                list2.removeAll(list3);
                for(int i = 0;i<list2.size();i++){
                   System.out.println(list2.get(i));
                }
                输出  1  2  
removeAll的作用  list2去掉list3和list2共有的元素
归并
List<String> list=new ArrayList<String>();
        list.add("蔬菜");
        list.add("牛奶");
        list.add("水果");
        list.add("蔬菜");
        Set set=new HashSet();
        set.addAll(list);
        List<String> listNoRepeat=new ArrayList<String>();
        listNoRepeat.addAll(set);
        for(String s : listNoRepeat){
            System.out.println(s);

        }

输出 蔬菜 牛奶 水果 去掉重复的数据         //定义一个去除list集合中重复元素           public static List fun(List list) {               //新建一个newlist集合               List newlist = new ArrayList();               //遍历参数集合               for (Object object : list) {                   //判断新集合是否不包含object                   if (!newlist.contains(object)) {                       //不包含就添加元素                       newlist.add(object);                   }               }               //返回新的元素               return newlist;           }
  1. 这个方法也不错挺方便的
list的contains方法不用说了 Collections.swap(list, 0, 2);交换位置 第0个元素和第2个元素交换位置 Collections.shuffle(list); 随机排序 下面讲一些泛型集合的操作 用到Person类 里面 有两个字段 name pwd 排序         List<Person> list2 = new ArrayList<Person>();         list2.add(new Person("3","我艹"));         list2.add(new Person("1","你说"));         list2.add(new Person("4","结婚"));         list2.add(new Person("7","猕猴桃"));         list2.add(new Person("5","猴哥"));                  Collections.sort(list2, new Comparator<Person>(){                public int compare(Person arg0, Person arg1) {                 return DoNumberUtil.intNullDowith(arg0.getName())>DoNumberUtil.intNullDowith(arg1.getName())? 1: -1;                }         }); 根据person的name大小排序(前提是这个字段存的是Int类型) Collections.sort(list2, new Comparator<Person>(){                public int compare(Person arg0, Person arg1) {                    return arg0.getPwd().compareTo(arg1.getPwd());                }         }); 根据pwd排序 string类型已经重写了cmpareTo方法 直接调用就OK 其他类型 date,float同理 删除         List<Person> list2 = new ArrayList<Person>();         list2.add(new Person("根茎","我艹"));         list2.add(new Person("菌菇","你说"));         list2.add(new Person("水果","结婚"));         list2.add(new Person("豆类","猕猴桃"));         list2.add(new Person("水果","猴哥")); //我要删除里面元素中等于 “水果”的元素         Iterator<Person> sListIterator2 = list2.iterator();           while(sListIterator2.hasNext()){               Person e = sListIterator2.next();               if(e.getName().equals("水果")){               sListIterator2.remove();               }           }  这里说一下不能用循环去删除list.remove方法删除下标是因为 你删除了下标1那它之后的那个元素下标就会变化 有时候会出现数组越界的异常 按照自定义的内容进行排序 我要让集合按照 根茎.水果.豆类.菌菇的顺序排序怎么办 循环添加太麻烦 class PersonComparator implements Comparator<Person> {               @Override       public int compare(Person o1, Person o2) {          String myrule = "<根茎<水果<豆类<菌菇";           RuleBasedCollator myrulecollato = null;          try {              myrulecollato = new RuleBasedCollator(myrule);          } catch (ParseException e) {             e.printStackTrace();          }          return myrulecollato.compare(o1.getName(), o2.getName());       }   } PersonComparator pc = new PersonComparator();           Collections.sort(list2, pc);  主要是myrule这个。 大家看一下就懂 继续泛型集合的归并 要是集合里面的元素Person是一样的 比如 list.add(person) list2.add(person) 这样用上面的归并就可以 要是是那种 例如 我要把person的名字为张三的归并 这样比较烦 还得定义List<String>集合抽取出来名字 然后contains 集合合并就是 addAll方法了 这排版 简直无语 -。-讲究看吧


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值