简体   繁体   English

如何基于Java中对象的一个​​成员变量从数组列表中删除另一个数组列表中存在的对象?

[英]How do I remove objects from an arraylist which are present in another arraylist based on one member variable of the object in Java?

I have a POJO class A with the below structure 我有一个具有以下结构的POJO类A

class A{
private String var1;
private int var2;
private String var3;
}

I have two ArrayList<A> List1 and List2 with different size. 我有两个具有不同大小的ArrayList<A> List1List2 I want to remove all elements in List1 which are already present in List2 and this equality needs to be checked with respect to the value stored in var2 . 我想删除List1中已经存在于List2中的所有元素,并且需要针对存储在var2的值检查这种相等性。

I have already checked making the List a Hashset and using removeAll() . 我已经检查过将List Hashset并使用removeAll() But this wont give the desired output since for the same var2 , var1 values differ. 但这不会提供所需的输出,因为对于相同的var2var1值不同。

Please help me solve this problem. 请帮我解决这个问题。

Edit 1 - Requested by Murat 编辑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);
    }


}

Removing Items 移除物品

ListA.removeAll(new HashSet(listB));

You may do it using the Stream API : 您可以使用Stream API来做到这一点:

Set<Integer> var2 = list2.stream()
    .map(a -> a.var2)
    .collect(Collectors.toSet());
list1.stream()
    .filter(a -> !var2.contains(a.var2))
    .collect(Collectors.toList());

You need 2 loops nested. 您需要嵌套2个循环。

pseudocode: 伪代码:

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

You just need to translate it to Java. 您只需要将其翻译成Java。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Java如何在将一个对象添加到另一个ArrayList时将其删除? - Java how to remove an object from one ArrayList while adding it to another? 如何从一个类的一个arrayList到另一个类的arraylist获取一定数量的对象? - How do I get a certain number of objects from one arrayList in one class to an arraylist in another class? 如何从Java中的ArrayList中删除对象? - How do I remove an object from an ArrayList in Java? 如何在Java中将数组列表从一个类复制到另一个类? - How do I copy an arraylist from one class to another in Java? 如何从另一个ArrayList中删除在一个ArrayList中找到的值? - How do I remove values found in one ArrayList from another ArrayList? 我如何通过 ArrayList<string> 在 Java 中从一种方法到另一种方法。 变量未初始化错误</string> - How do I pass an ArrayList<String> from one method to another in Java. Variable not initialised error 如何在Java中为成员arraylist变量实现延迟初始化? - How do I implement lazy initialization for a member arraylist variable in Java? 如何根据对象的条件从java中的数组列表返回(和删除)对象 - How to return (and remove) an object from an arraylist in java based on a condition of that object 在另一个中用数据交换ArrayList对象成员的解决方案-Java - Which solution for Swapping ArrayList objects member with data in another - Java Java,如何将一个对象添加到ArrayList并从另一个对象减少一个对象 - Java, how to add one object to an ArrayList and decrease one from another
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM