哈希集中的新条目

| 有没有办法知道最近添加到哈希集中的新条目是什么?在我的程序中,第一个循环添加了[Emmy,Carl],而在我的第二个循环中添加了[Emmy,Dan,Carl],无论如何我可以只使用dan而不能在第三个循环中使用其余的吗?     
已邀请:
        “ 0”不包含有关添加元素顺序的信息。您需要将其替换为具有此功能的集合(例如
ArrayList
)。     
        java.util.HashSet不会保留顺序,但是java.util.LinkedHashSet会保留顺序。可以改用吗?从Javadoc:   此实现与HashSet的不同之处在于,它维护在其所有条目中运行的双向链接列表。此链表定义了迭代顺序,即元素插入到集合中的顺序(插入顺序)。请注意,如果将元素重新插入到集合中,则插入顺序不会受到影响。     
        哈希表由哈希表支持,并且无法保证检索顺序。检索顺序将与插入顺序不同。因此,不,不可能知道最后添加的项目。 解决方法-可以使用两个哈希集,将旧与新哈希进行比较并获取新条目,或者使用某种指标来区分所添加的垂直迭代,或者使用ArrayList或适合您设计的任何方法。     
        
HashSet<String> oldpeople = new HashSet<String>();P
HashSet<String> newPeople;
for (Set<String> cycle : input)
{ 
    newPeople = new HashSet<String>();
    newPeople.addAll(cycle);
    newPeople.removeAll(oldPeople);
    oldPeople.addAll(cycle);
}
现在您有了newPeople中始终包含的最后一个新对象。     
        好吧,如果我正确理解了您的帖子和评论(那很难,请尝试更加精确:))您真正想要的是:a)不在HashSet中多次添加任何项目,并且b)看看是否尝试添加时,该集合已经包含给定的项目。 a)对于每个集合都是真,对于b)可以只使用add的返回值:如果返回false,则该集合中已包含该值。     

要回复问题请先登录注册