两个list对象合并去重,python两个list合并去重排序

  两个list对象合并去重,python两个list合并去重排序

  一:去重

  在工作中,我们经常需要对两个目录进行合并去重,对于目录中的数据不同,有不同的处理方式。

  1.目录中是基础数据类型

  list integer list 1=new ArrayList();list integer list 2=new ArrayList();list1.add(新整数(5));list1.add(新整数(4));list1.add(新整数(3));list1.add(新整数(5));list2.add(新整数(5));list2.add(新整数(6));list2.add(新整数(7));list2.add(新整数(8));清单1。全部删除(列表2);清单1。addall(列表2);系统。出去。println(列表1);输出结果:

  [4, 3, 5, 6, 7, 8]

  2.目录中是关联对象

  由于判断对象是否相等,需要在对象的实体类中覆写等于方法,比较麻烦,可以使用地图来进行去重。

  实体类:

  公共类投票{私有静态最终long serial version uid=1L;私有字符串voteId//私有整数voteType//投票类型私有字符串voteSubject//投票主题吸气剂设置器方法} list vote list 1=new ArrayList();list vote list 2=new ArrayList();list1.add(若干投票对象);list2.add(若干投票对象);//以投票编号为关键,投票对象为价值保存到地图中,由于键不可重复,所以可以达到去重的效果MapString,Vote map=new HashMap();for (Vote vote : list1) { if(vote!=null){ map.put(vote.getVoteId(),vote);}}for(投票投票:list2) { if(投票!=null){ map.put(vote.getVoteId(),vote);}}//遍历地图,将地图中的投票添加到目录中list vote组合结果=new ArrayList();SetEntryString,Vote entry set=map。条目集();IteratorEntryString,Vote ITER=条目集。迭代器();而(ITER。has next()){合并结果。补充(ITER。下一个()).getValue());}二 List中对象按照某一属性排序

  直接调用方法:

  Collections.sort(combineResult,new comparator Vote(){ @ Override public int compare(Vote v1,Vote v2){ return v1。getvoteendtime().比较(v2。getvoteendtime());}});将需要排序的属性转换为long类型的数据,在比较方法中进行比较,如果想升序排列,则v1 .属性compareTo(v2 .属性);降序排列,则v2 .属性compareTo(v1 .属性)。

  集合。排序方法,最终调用的还是数组中的合并排序方法,在这个方法中进行了一个冒泡排序。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: