我有两个数组列表,我需要:
我的要求是比较两个列表并删除重复项并根据其优先级排列元素。有人可以为此提供帮助吗?
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;}
答案 0 :(得分:0)
要解决重复问题,请尝试使用此方法:
if(!list1.contains(dtoX)){
list1.add(dtoX);
}