我使用Java HashSet存储唯一元素,但是现在我想检索元素,但是HashSet没有类似的东西,这是我想要解决的问题:

对于我的用例LinkInfo hashCode()和equals()方法不使用LinkInfo.id字段,我想从set中获取linkinfo实例并更新其所有字段,但id字段则应来自旧实例

Set<LinkInfo> fooSet = new HashSet<>()

public void updateFoo(LinkInfo linkInfo) {

    LinkInfo temp = fooSet.get(linkInfo);


    linkInfo.setId(temp.getId());

    // now update set
    fooSet.remove(linkInfo)
    fooSet.add(linkInfo)

    }

最佳答案

而不是

LinkInfo temp = fooSet.get(linkInfo);


以下逻辑与您似乎想要的相同

if (fooSet.contains(linkInfo)) {
   temp = linkInfo;
}

关于java - 什么是具有独特元素(如set)和get element功能的正确Java集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50940409/

10-10 04:35