问题标签 [linkedhashset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java 两个 Set 对象 - hashCode() 相同但 .equals() 失败
我有两组自定义对象(LinkedHashSet),它们覆盖了 hashCode() 和 equals() 方法。
在比较这两个集合时,即使哈希码相同,equal() 方法也会失败。
这将返回:
cmContacts.equals(cm2Contacts):false
cm2Contacts.equals(cmContacts):false
比较哈希码:真
根据文档,如果哈希码相同,则 equals 方法应返回 true。
集合的哈希码定义为集合中元素的哈希码之和,其中空元素的哈希码定义为零。这确保了 s1.equals(s2) 意味着任何两个集合 s1 和 s2 的 s1.hashCode()==s2.hashCode(),这是 Object.hashCode() 的一般合同所要求的。
https://docs.oracle.com/javase/7/docs/api/java/util/Set.html#equals(java.lang.Object)
任何想法为什么会发生这种情况?
java - 按日期时间排序 LinkedHashset
我有以下 LinkedHashset
它与 LinkedHashset 一样,因为我在添加时有许多重复的条目,它可以防止这种情况。
然后我如何对我的 LinkedHashset 进行排序
java - 从 LinkedHashSet 到 String 的 ClassCastException
我想从 LinkedHashSet 中获取字符串数组,但我在尝试在 foreach 循环中打印我的值的地方得到 ClassCastException。
我知道 powerset 方法有问题,但是当我尝试通过在方法中添加 LinkedHashSet 来修复它时,我失败了。
我相信有一种方法可以让字符串脱离对象。最后的想法是将它写在文件中,而不是使用正则表达式,但它似乎很异国情调......
跟踪:线程“main”中的异常 java.lang.ClassCastException:java.util.LinkedHashSet 无法转换为 [Ljava.lang.String; 在 Main.main(Main.java:61)
java - LinkedHashSet - 插入顺序和重复 - 保持最新的“顶部”
我需要一个保持插入顺序并具有唯一值的集合。LinkedHashSet 看起来像是要走的路,但有一个问题 - 当两个项目相等时,它会删除最新的一个(这是有道理的),这是一个例子:
将LinkedHashSet
打印:
one
,two
,three
但我需要的是:
one
,three
,two
这里最好的解决方案是什么?是否有任何收集/收集方法可以做到这一点,或者我应该手动实现它?
java - 按插入顺序检索 LinkedHashSet 元素并将其保存到局部变量中
我有一个linkedhashset,我需要按照插入的顺序从中获取元素。要检索,我坚持以确切的插入顺序获取元素。
将linkedHashset转换为List以按索引获取,但恐怕转换为list会打乱我的元素更改顺序
转换为列表是我的主要目标,即首先按插入顺序检索它们,因为列表不保留顺序。
你能在这里给我推荐一个替代品或我的错误吗?
java - 获取 LinkedHashSet 的最后 5 个元素的子列表?
是否有一个衬垫可以在新的 LinkedHashSet 中获取 LinkedHashSet 的最后 5 个元素?
这是我目前拥有的,但效率不高:
或者我应该在这种情况下使用 TreeSet、SortedSet、HashSet 吗?
java - Java - HashSet 过滤重复项(XSSFCell)
我有一个包含重复项的列表,需要删除它们。我的清单是形式
存储在“结果”列表中的数据样本是:
- [ABC,123,2016 年 4 月 22 日]
- [DEF,456,2016 年 4 月 22 日]
- [ABC,123,2016 年 4 月 22 日]
- [ABC,123,2016 年 1 月 10 日]
基于此链接,我尝试了以下代码:
预期输出为:
- [ABC,123,2016 年 4 月 22 日]
- [DEF,456,2016 年 4 月 22 日]
- [ABC,123,2016 年 1 月 10 日]
但它并没有删除重复项,整个列表都保存在集合中。希望对所面临的问题很清楚,寻求指导。
java - 如何使用最简单、最少的数据结构来实现 LFU 缓存?
我在一次采访中被问到这个问题,他首先询问了 LRU 和 LFU 之间的区别,然后要求实现两者。我知道 LRU 可以通过 LinkedHashMap 实现,但我对 LFU 感到困惑。谁能告诉我如何用最简单的数据结构和很好的解释来实现它?也可以用 LinkedHashMap 实现吗?
list - Java:返回一个 LinkedHashSet
基本上,我试图在 Java 中返回一个字符串集合。但...
- 每个字符串必须是唯一的,因为它们都是当前文件夹中“.db”文件的名称,所以我认为这个集合应该是 LinkedHashSet。
- 元素(文件名)必须保持完全相同的顺序,所以我可以通过它在集合中的顺序号选择其中一个。
我的主要例程将在 GUI 组件(可能是 JList)中显示此集合,供用户选择其中一个(不带 .db 扩展名)。我完全是新手(如您所见),所以如果您认为有比 LinkedHashSet 更好的选择,请告诉我。
另外,我怎样才能在主类中获取这个集合?
到目前为止我得到了什么:
java - 从运行时列表中删除重复的字符串
我不明白为什么这个函数没有从列表中删除重复的字符串。