根据重复条目排列两个数组列表

时间:2017-12-19 12:16:23

标签: java

我有两个数组列表,我需要:

  1. 比较他们
  2. 根据两个列表中的优先级删除重复项
  3. 显示最终列表
  4. 我的要求是比较两个列表并删除重复项并根据其优先级排列元素。有人可以为此提供帮助吗?

    SampleDTO.java

    private String id;
    
    public String getId() {
            return id;
    }
    public void setId(String id) {
            this.id= id;
    }
    

    RemoveDuplciatesAndArrange.java

    //List1 Array
    List<SampleDTO> list1 = new ArrayList<SampleDTO>();
    SampleDTO dto1 = new SampleDTO();
    dto1.setId("20504");
    SampleDTO dto2 = new SampleDTO();
    dto2.setId("20502");
    SampleDTO dto3 = new SampleDTO();
    dto3.setId("5608287");
    SampleDTO dto4 = new SampleDTO();
    dto4.setId("37666");
    SampleDTO dto5 = new SampleDTO();
    dto5.setId("19432");
    SampleDTO dto6 = new SampleDTO();
    dto6.setId("28454315");
    SampleDTO dto7 = new SampleDTO();
    dto7.setId("33937");
    
    list1.add(dto1);
    list1.add(dto2);
    list1.add(dto3);
    list1.add(dto4);
    list1.add(dto5);
    list1.add(dto6);
    list1.add(dto7);
    
    //List2 Array
    List<SampleDTO> list2 = new ArrayList<SampleDTO>();
    SampleDTO dto5 = new SampleDTO();
    dto5.setId("37666");
    SampleDTO dto6 = new SampleDTO();
    dto6.setId("33937");
    SampleDTO dto7 = new SampleDTO();
    dto7.setId("19432");
    
    
    list2.add(dto5);
    list2.add(dto6);
    list2.add(dto7);
    

    重复项目为:{"37666","33937","19432"}。但是如果你考虑重复条目的位置,list2优先于list1

    最终输出应为:

      

    {&#34; 20504&#34;,&#34; 20502&#34;,&#34; 5608287&#34;,&#34; 37666(来自   list2)&#34;,&#34; 22185&#34;,&#34; 80165777&#34;,&#34; 36473&#34;,&#34; 28454315&#34;,&#34; 19432(来自   list2)&#34;,&#34; 33937(来自list2)&#34;}

1 个答案:

答案 0 :(得分:0)

要解决重复问题,请尝试使用此方法:

if(!list1.contains(dtoX)){
list1.add(dtoX);
}