如何在java.util.Set中获取项目的索引
我知道Set和List之间的区别(允许唯一与重复,而不是有序/有序等)。我正在寻找的是一个使元素保持有序的集合(这很容易),但是我还需要能够恢复插入元素的索引。因此,如果我插入四个元素,那么我希望能够知道其中一个元素的插入顺序。
MySet<String> set = MySet<String>();set.add("one");
set.add("two");
set.add("three");
set.add("four");
int index = set.getIndex("two");
因此,在任何给定时刻,我都可以检查是否已添加字符串,并获取该字符串在集合中的索引。是否有这样的事情,或者我需要自己实施?
回答:
类中的一个小型静态自定义方法Util
会有所帮助:
public static int getIndex(Set<? extends Object> set, Object value) { int result = 0;
for (Object entry:set) {
if (entry.equals(value)) return result;
result++;
}
return -1;
}
如果你需要/想一个类,它 是一个Set
,并提供getIndex()
方法,我强烈建议实施新的Set
和使用Decorator模式:
public class IndexAwareSet<T> implements Set { private Set<T> set;
public IndexAwareSet(Set<T> set) {
this.set = set;
}
// ... implement all methods from Set and delegate to the internal Set
public int getIndex(T entry) {
int result = 0;
for (T entry:set) {
if (entry.equals(value)) return result;
result++;
}
return -1;
}
}
以上是 如何在java.util.Set中获取项目的索引 的全部内容, 来源链接: utcz.com/qa/403376.html