gpt4 book ai didi

Java 集合在提供引用的同时确保唯一性

转载 作者:行者123 更新时间:2023-12-01 15:03:17 26 4
gpt4 key购买 nike

我有这样的结构:

public class Foo
{
public int A ;
public int B ;
public int C ;
}

我需要将它们逐一添加到集合中,这样我最终得到的副本不超过一份,其中 A、B 和 C 都相等。我还需要引用另一个类的对象,如下所示:

public class Bar
{
public Foo A ;
public Foo B ;
public Foo C ;
}

我尝试使用 TreeSet < Foo > ,它可以确保唯一性,但我无法从 TreeSet 中获取引用(只有一个关于它是否在集合中的 boolean 值),所以我无法传递它引用 Bar 。我尝试使用 TreeMap < Foo , Integer >ArrayList < Foo > ,这可以确保唯一性并允许我获取对对象的引用,但它浪费了大量的时间和内存来维护 ArrayListInteger

我需要一种方式来表达“如果这个 Foo 尚未在集合中,则将其添加;否则,请给我集合中已有的 Foo,而不是我创建的用于检查其在集合中是否存在的值。”。

(我突然想到我可以做一些类似 TreeMap < Foo , Foo > 的事情,这会做我想做的事情,但它仍然看起来像是一种浪费,尽管它远没有那么多,所以我会继续这个问题希望得到启发。)

(是的,我确实实现了 Comparable 来在树中进行唯一性检查;该部分已经可以工作了。)

最佳答案

我会使用例如一个TreeMap<Foo, Foo>目的。当你 put一个新的Foo在映射中,将其指定为键和值。这使您可以使用 get返回 Foo已经在 Collection 中了。请注意,您必须处理 Foo 的情况。你自己已经在 map 上了。

关于Java 集合在提供引用的同时确保唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13325857/

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