问题标签 [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 HashSet 中的元素排序
为什么第二组和第三组保持顺序:
这是我得到的输出:
java - LinkedHashSet 中的唯一 Java 对象
我想创建根据值排序的唯一键值对的前 5 个列表。
我曾尝试创建一个 Hashmap,但由于我从 JSON 读取的原始列表已排序,Hashmap 会覆盖最后一个值,因此它们的键将具有最小值而不是最大值。
解决方案是使用LinkedHashSet,以确保唯一性并保持顺序。但是由于我要存储一个键值对,所以我决定创建一个新类并将它们保存为对象。
我知道我必须实现可比较但显然没有比较发生并且 LinkedHashSet 不是唯一的。
我的代码是:
}
输出是:
[type=君主-信心=79.447838,type=君主-信心=58.911613,type=君主-信心=56.614368,type=建国图-信心=48.796387,type=政客-信心=38.921349,type=王后-信心=36.142864 ]
java - 当我使用@IdClass LinkedHashSet 时包含重复项
我的任务是准备一个报价搜索屏幕。我参考了一个 Oracle 视图来创建报价模型。由于视图表中没有 id 列,我更喜欢通过 quoteId.class 使用 @IdClass 注释使用复合 id。我在两个模型上都覆盖了 hashCode 和 equals 方法。quoteId equals & hashcode 返回所有字段的组合,quote hashcode & equals 只是比较模型中的 this.quoteNo 字段。
报价型号:
当我需要独特的物品时,我只是通过以下方式访问:
但是当我开始使用 idClass 时,我的linkedHashSet 包含所有项目,甚至它们的报价编号都相同。我是否缺少任何其他实现来通过引用无字段(可比较,比较器)来证明每个项目的唯一性?如果我跟踪 uniqueQuoteResult 列表项的值,它们都具有相同的报价编号。
编辑注意:我已经改变了使用 apache 库 HashCodeBuilder 和 EqualsBuilder 支持的方式,但问题仍然存在。我担心 idClass 哈希码对linkedhashset 生效
java - LinkHashMap/LinkedHashSet 中的迭代排序如何导致性能比 HashMap 略低
由于 LinkedHashMap/Set 保持 Collection 中的条目顺序,因此会导致性能稍低。我想知道为什么会这样。
java - HashSet 和 LinkedHashSet 有什么区别
我看到它LinkedHashSet
扩展了HashSet
,我知道它保持秩序。
但是,通过检查 JDK 中的代码,似乎LinkedHashSet
只包含构造函数而没有实现,所以我猜所有的逻辑都发生在HashSet
?
如果这是正确的,为什么要这样设计?这似乎很混乱。
编辑:这个问题有一个不幸的错误。我写了HashMap
andLinkedHashMap
而不是HashSet
and LinkedHashSet
。如果可能的话,我解决了这个问题。
另外,我很感兴趣为什么 Java 设计者选择这样实现它。
java - Java LinkedHashSet 向后迭代
如何LinkedHashSet
从最后一项到第一项迭代 a 的项?
java - Java LinkedHashSet 索引有效性
我一直在将大量 Java 代码移植到 C++ 中,并且在我离开时不得不实现 LinkedHashSet 之类的东西。我使用 Boost 的多索引容器对 LinkedHashSet/Map 进行了合理的复制。
当我移植代码时,我遇到了一些有趣的东西,其中包含 multi_index,因为包含的对象不是可变的(除非您将类的特定字段标记为可变)。但是,如果密钥是从包含的类的一些可变成员中计算出来的,那么事情就会变得有趣。
为了澄清一些事情,我想我会用 Java 写一个简单的例子来检查他们的 LinkedHashSet 的行为。结果让我有点惊讶;看起来它们的行为类似于 Boost 的多索引容器,因为在修改包含的对象时不会重新生成索引(如您所料);然而,编译器并没有以任何方式抱怨——似乎很容易让自己陷入困境(我正在移植的代码似乎犯了上述罪过,谁知道它仍然是如何工作的)。
这只是 Java 中缺少 const_iterators 的限制,还是我设法做了一些特别愚蠢或棘手的事情?
这是一个简单的例子:
它打印出以下内容:
有趣的是,它知道 Baz 变了;但是它仍然没有找到 Baz2。
显然这是人为的,但我正在查看的非常合理的代码似乎(通过多个间接)导致了这个问题。使用 Boost Multi Index 至少你必须 const-cast 一个迭代器来导致这个!
grails - 将 grails hasMany 从 LinkedHashSet 更改为 ArrayList
我有以下内容:
Grails 生成属性 b 为 a 的类LinkedHashMap
。我想配置 Grails 以生成一个ArrayList
代替。
我知道这可以通过显式编写列表来完成:
但我正在寻找一种通过一些外部配置来实现这一目标的方法。
java - 如何从 Java 中的 LinkedHashSet 中获取一个元素?
我正在寻找将给定集合划分为不相交子集的代码。例如,一组足球运动员,我们根据他们所属的球队对他们进行划分。最后我想要一份代表名单,即每支球队的一名球员。
所有足球运动员都认识他们球队中的所有其他球员——这与复杂性非常相关。所以,我目前关于如何做到这一点的想法如下(set
目前在哪里 a LinkedHashSet<T>
):
然而,在 while 循环的每一步都构建一个新的迭代器感觉很奇怪。LinkedHashSet 应该在内部具有某种firstElement()
功能(对于它的 LinkedList 行为),但由于某种原因,我找不到如何做到这一点。我也尝试了一个 foreach 循环,但这导致了java.util.ConcurrentModificationException
.
我应该如何正确地做到这一点?
java - Hibernate all-delete-orphan 用于有序集合
我有这样的关系
在我的 Java 代码中,对此执行了一组操作,就像
现在这个 SomeBeans 是一个linkedHashmap,所以订单得到了维护,但是由于在级联中使用了所有 Delete Orphan,我在特定场景中遇到了异常:
所以我把上面的java实现改成
但是这样做我无法维持来自linkedHashMap SomeBeans 的订单。
有没有人也遇到过这样的问题,在这方面的任何帮助都将不胜感激
问候,
瓦布哈夫