gpt4 book ai didi

java - LinkedHashSet - 插入顺序和重复 - 保持最新的 "on top"

转载 作者:IT老高 更新时间:2023-10-28 21:00:25 29 4
gpt4 key购买 nike

我需要一个保持插入顺序并具有唯一值的集合。 LinkedHashSet 看起来像要走的路,但有一个问题 - 当两个项目相等时,它会删除最新的一个(这是有道理的),这是一个例子:

set.add("one");
set.add("two");
set.add("three");
set.add("two");

LinkedHashSet 将打印:

one, two, three

但我需要的是:

one, three, two

这里最好的解决方案是什么?是否有任何收集/收集方法可以做到这一点,或者我应该手动实现它?

最佳答案

大部分 Java Collections可以扩展以进行调整。

子类 LinkedHashSet ,覆盖 add方法。

class TweakedHashSet<T> extends LinkedHashSet<T> {

@Override
public boolean add(T e) {
// Get rid of old one.
boolean wasThere = remove(e);
// Add it.
super.add(e);
// Contract is "true if this set did not already contain the specified element"
return !wasThere;
}

}

关于java - LinkedHashSet - 插入顺序和重复 - 保持最新的 "on top",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36399845/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com