我知道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;
}
}
公共类DbHelper扩展了SQLiteOpenHelper{ }
问题内容: 如何获得当前Eclipse项目的名称?我在GMF视图中,使用弹出菜单ist的某些子菜单时需要项目名称。 问题答案: 这GMF类有一个直截了当的回答,如果你有机会到ResourcesPlugin名称: 通用答案(来自可能过时的代码)可能类似于(如果您打开了编辑器): 如果没有打开编辑器:
在recyclerView中获取已点击项目的位置,我在recyclerView中创建cardview和链接 我想获取位置,将开关盒设置为每个卡视图的意向活动 当我点击card view I时,他会打开另一个页面,当你点击card view 2时,他会打开另一个页面。 看看我的密码 在recyclerView中获取已点击项目的位置,我在recyclerView中创建cardview和链接 我想获取位
问题内容: 我在python中有一个元组(“ A”,“ B”,“ C”,“ D”,“ E”),如何获取特定索引号下的哪个项目? 示例:假设给定0,它将返回A。给定2,将返回C。给定4,它将返回E。 问题答案: 您显示的不是,而是一个(圆括号而不是方括号显示)。但是,无论是索引列表 还是 元组(在索引中获取一项),无论哪种情况,都需要将索引附加在方括号中。 所以: 打印,等等。 元组(不同于列表)是
问题内容: 在下面的示例中,我创建了一个包含3个项目的VARRAY。 我想要以下输出: 请注意,该预定义为。 问题答案: