问题标签 [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 - LinkedHashSet.contains() 在应该返回 false 时返回 true
在日志中:
怎么回事?如果 DEF_IDS 不包含“profile0”,为什么它说它包含?
java - LinkedHashSet 在没有覆盖 hashCode() 和 equals() 的对象上
我有以下对象集合:
但MyClass
不会覆盖hashcode
andequals
方法。
即使 MyClass 不覆盖hashCode
andequals
方法,上述集合是否也只能是唯一的对象?
java - Java-比较 itr() 和 itr.next() 的双精度值
编辑:预期的输出在最后发布。
我编写了一个程序,通过Riemann-Siegel 公式计算Riemann Zeta 函数的零点。我对调整程序中的一种方法来观察所谓的Lehmer 现象很感兴趣。
在程序内部,我正在寻找调整findRoots()
方法的结尾。
完整的程序参考
打印的零包括
... 以及更多。为了观察莱默现象,我正在寻找调整以下
类似于
因此,仅当两个值靠近时才打印零。我可以用迭代器做到这一点吗?我需要改用 ListIterator 吗?
我尝试了增强的 for 循环并遇到了同样的问题。是否有更好或更有效的方法来比较从 LinkedHashSet 集中打印的值?
(注意:我最初创建的是 TreeSet 而不是 LinkedHashSet。后来当我意识到 LinkedHashSet 比 TreeSet 快得多时,我将其更改为 LinkedHashSet)
预期输出(i < 50000
在 findRoots() 方法内更改)
输出。这两个零在 EPSILON 之内(彼此相差 0.05)。这很重要的原因在于 Z(t) 函数背后的数学。可以调整 EPSILON 以找到更靠近的零点。
java - java.util.Arrays$ArrayList 不能转换为 java.util.LinkedHashSet
我想编写一个 java 程序,它会给我一个给定的字母频率String
。
我试过这个:
为什么我使用LinkedHashSet
,因为我不想要任何重复。然而,这给了我一个错误,即这种类型的转换是不正确的。
所以我用它作为几行额外的代码:
List<String> lhs = Arrays.asList(strMOd);
LinkedHashSet<String> lhsmod = new LinkedHashSet<String>(lhs);
为什么以前的代码会给出这个错误,在 的帮助下这样做有什么好处LinkedHashSet
?
java - LinkedHashSet 无法从 ArrayList 中删除重复的句子
我正在构建一个 android/Java 程序,它从文本文件中读取并将每个句子存储在数组列表中的文本文件中。然后它检查句子中每个单词的出现情况,并打印出所有包含重复单词的句子。
这是我用来打印最终结果的代码:
我的程序首先读取一个文本文件,然后将我的文本文件中的每个句子存储在一个名为“句子”的句子数组列表中。
然后它读取文本文件中的每个单词,并将重复多次的每个单词存储在一个名为“key”的数组列表中。
然后它检查每个句子中是否存在“key”,如果存在,它将这些句子添加到名为“lhs”的 LinkedHashSet 中。
然后它应该在输出屏幕上显示 LinkedHashSet 中的所有句子。
在这种情况下,我的“key”的值是“rate”、“states”和“government”
但是,我的文本文件包含这句话:“13 个州报告的失业率高于当前的全国失业率。”
如您所见,它包含“状态”和“速率”,这是我的两个关键字。
当我运行这个程序时,这个特定的句子在输出屏幕上出现了两次,因为程序分别查找每个“键”,所以它认为它们是两个不同的句子。
这就是为什么我使用 LinkedHashSet 来防止这种情况,但它仍然在输出屏幕上显示这句话两次。
我应该如何解决这个问题?
java - LinkedHashSets的HashSet不会删除有多个元素的LinkedHashSet
我正在学习数据结构和算法,并尝试在 Java 中实现不相交的数据结构。这是我做同样事情的代码-
这是我正在运行以测试我的实现的代码-
当我尝试将一个集合与另一个集合合并时,比如说 set2,它有 2 个或更多元素,集合会正确合并,但即使在调用之后 set2 也不会从集合集合中删除allsets.remove(set2)
但是,如果要合并的集合,即;set2,只有 1 个元素,allSets.remove(set2)
成功从集合集合中移除 set2。
这是我的代码的输出,它确认了我的问题-
我无法理解为什么HashSet.remove(LinkedHashSet)
无法删除LinkedHashSet
带有多个元素的 a,但成功地删除了LinkedHashSet
带有 1 个元素的 a。
任何帮助将不胜感激。非常感谢。
java - 为什么 LinkedHashMap keyset() 不返回 LinkedHashSet vs Set?
我已经阅读了 Java 文档以及 LinkedHashMapskeyset()
维护秩序的这篇文章。
从 LinkedHashMap 对象返回键和值的顺序是否得到保证?
我的问题是,如果它保证顺序,那么为什么源代码不LinkedHashMap
返回Set
保证顺序的类型的对象LinkedHashSet
?
我可能想到的一个原因是 LinkedHashSet 使用了一个会增加内存分配的映射(取决于 AbstractSet 的实现方式)。是否也是因为它未来证明了密钥集的实现?
就像这个答案在这篇文章中所说:使用列表还是集合更好?
返回列表与编程到最合适的接口是一致的。
返回一个集合会给用户带来歧义,因为返回的集合可能是:Set、List 或 Queue。
因此,无需阅读文档keyset()
不是模棱两可吗?
keyset()
源代码:
java - Java数组添加算法
目前我在从最低价格到最高价格的排序数组中有这组数据。
第一个排序数组的结果**[5.0,6.0,10.0,10.0,10.0]** 每个数据都与船名配对。
我的目标(创建一个新的字符串数组): [Adda,mutha,spade,ace,Titanic] Adda 是最便宜的,其次是 mutha。对于 spade、ace 和 titanic,它们按容量排序,因为它们具有相同的价格 这是我的代码
目前的结局是【阿达、穆塔、黑桃、泰坦尼克号】 缺王牌。
感谢您的帮助
java - 如何从 LinkedHashSet 中获取前 5 个值?
我有一个包含多个值的 LinkedHashSet。
我想遍历一组值并显示该组中存储的项目数中的前五个值。我使用了一个 for 循环来遍历值并显示数据,见下文:
这将输出存储在 LinkedHashSet 中的所有值。为了只从集合中获取前 5 个值,我应该对我的代码进行哪些更改。
java - java集合保留顺序并且应该是唯一的
明显不会保持秩序
从上面的集合中读取元素时,它应该保持顺序,但有时它不会?我的观察是错的还是我遗漏了什么?