如何从基于Java对象的一个成员变量的另一个ArrayList中的ArrayList中删除对象?
问题描述:
我有一个POJO类A与下面结构如何从基于Java对象的一个成员变量的另一个ArrayList中的ArrayList中删除对象?
class A{
private String var1;
private int var2;
private String var3;
}
我有两个ArrayList<A> List1
和List2
具有不同的大小。我想删除已存在于List2
中的List1
中的所有元素,并且需要根据存储在var2
中的值检查该等式。
我已经检查了使列表a和使用removeAll()
。但是这不会给出所需的输出,因为对于相同的var2
,var1
值有所不同。
请帮我解决这个问题。
编辑1 - 由穆拉特
public class HistoryDto implements Serializable,Comparable<HistoryDto> {
private Integer id;
private String sId;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSId() {
return sId;
}
public void setSId(String sId) {
this.sId = sId;
}
public String getTrackName() {
return trackName;
}
public void setTrackName(String trackName) {
this.trackName = trackName;
}
public String getTrackDescription() {
return trackDescription;
}
public void setTrackDescription(String trackDescription) {
this.trackDescription = trackDescription;
}
public Integer getUsedNo() {
return usedNo;
}
public void setUsedNo(Integer usedNo) {
this.usedNo = usedNo;
}
public String getExtraInfo() {
return extraInfo;
}
public void setExtraInfo(String extraInfo) {
this.extraInfo = extraInfo;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public Integer getPartyId() {
return partyId;
}
public void setPartyId(Integer partyId) {
this.partyId = partyId;
}
private String trackName;
private String trackDescription;
private Integer usedNo;
private String extraInfo;
private String imageUrl;
private Integer partyId;
public int compareTo(HistoryDto other) {
return this.sId.compareTo(other.sId);
}
}
删除记录
ListA.removeAll(new HashSet(listB));
答
请求您可以使用流API做到这一点:
Set<Integer> var2 = list2.stream()
.map(a -> a.var2)
.collect(Collectors.toSet());
list1.stream()
.filter(a -> !var2.contains(a.var2))
.collect(Collectors.toList());
答
您需要2个循环嵌套。
伪代码:
for each in A do
for each in B do
if (current item of A equals to current item of B)
say yes!
done
done
你只需把它翻译成Java。
+0
我最终做到了。 – hybrid
如何实现'Compareable''? –
@MuratK。尝试过,并没有工作。谢谢 – hybrid
哦,它确实工作,但你可能做得不正确。你可能想在这里发布,所以人们可以真正帮助你。 –