gpt4 book ai didi

java - Java HashSet分区中如何选择唯一代表

转载 作者:行者123 更新时间:2023-11-29 03:48:18 24 4
gpt4 key购买 nike

我想知道一种方法来实现我正在尝试做的场景。

我有一个对象的 HashSet,对象的属性 A 类型为 int。现在,我希望根据属性 A 的不同值从 HashSet 的每个不同分区中获得一个代表。

例如:设HashSet为

{O1, O2, O3, O4, O5, O6} where O1 to O6 are objects with attribute values as follows

Partition #1
O1.A = 1
O2.A = 1
Partition #2
O3.A = 2
O4.A = 2
O5.A = 2
Partition #3
O6.A = 3

我想要每个分区的代表,

e.g. {O1, O4, O6} 

任何人都可以建议一些方法来做到这一点吗?任何帮助将不胜感激。

谢谢,

桑纳特

最佳答案

制作 Map<Integer, YourClass> (可能最好是 TreeMap,所以分区是有序的),并将数据复制到其中:

 Map<Integer, YourClass> partitions = new TreeMap<Integer, YourClass>();
for (YourClass x: set){
Integer p = x.getA();
if (partitions.containsKey(p))
continue;
partitions.put(p, x);
}

在此之后,partitions包含找到的每个分区的一个条目,每个分区有一个代表(找到的第一个)。

Set<YourClass> representatives = partitions.values();

关于java - Java HashSet分区中如何选择唯一代表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885006/

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