如何在java中获取项目的索引。util。设置
我知道集合和列表之间的区别(唯一与允许重复、未排序/排序等)。我要寻找的是一个使元素保持有序的集合(这很容易),但我还需要能够恢复插入元素的索引。如果我插入四个元素,那么我想知道其中一个元素的插入顺序
MySet<String> set = MySet<String>();
set.add("one");
set.add("two");
set.add("three");
set.add("four");
int index = set.getIndex("two");
因此,在任何给定时刻,我都可以检查是否已经添加了字符串,并获取集合中该字符串的索引。有这样的事情吗,或者我需要自己去实现
# 1 楼答案
一个解决方案(虽然不是很漂亮)是使用Apache公共列表/集合
这是一个没有重复项的列表
https://commons.apache.org/proper/commons-collections/javadocs/api-3.2.2/index.html?org/apache/commons/collections/list/SetUniqueList.html
# 2 楼答案
您可以通过添加所需的} 。实施和测试它需要15分钟。只需使用迭代器和计数器遍历集合,检查对象是否相等。如果找到,请返回计数器
getIndex()
方法来扩展^{# 3 楼答案
将字符串添加到值为索引的哈希表中如何:
# 4 楼答案
Util
类中的一个小型静态自定义方法将有助于:如果您需要/想要一个是
Set
并提供getIndex()
方法的类,我强烈建议实现一个新的Set
并使用decorator模式:# 5 楼答案
创建集合后,只需将其转换为列表并从列表中按索引获取: