获取键的 LinkedHashMap 索引
Get LinkedHashMap index of a key
如何获取 LinkedHashMap 中键的索引?
例如我得到这个:
index key value
0 "a" 10
1 "b" 20
2 "c" 30
现在我想得到键的索引"b"。在这种情况下是什么 1.
有没有运行时间为 O(n) 的方法?
我将在循环中使用它,例如 new ArrayList<String>(mapIndex.keySet()).indexOf(position_with_section_map[position]);
对我来说不是解决方案
不,如果 LinkedHashMap
没有 O(n) 的运行时间,就无法做到这一点。您可以保留一个额外的 Map<String, Integer>
来自己保留元素的索引,但这确实是您唯一可以做的事情。
添加到 Louis Wasserman 答案而不是创建新地图,您可以将索引和值移动到 Pojo 并将其保存为地图中的值。
class Test{
int index;
int value;
public int getIndex();
public int getValue();
}
使用LinkedHashMap作为LinkedHashMap String,Test>
如何获取 LinkedHashMap 中键的索引?
例如我得到这个:
index key value
0 "a" 10
1 "b" 20
2 "c" 30
现在我想得到键的索引"b"。在这种情况下是什么 1.
有没有运行时间为 O(n) 的方法?
我将在循环中使用它,例如 new ArrayList<String>(mapIndex.keySet()).indexOf(position_with_section_map[position]);
对我来说不是解决方案
不,如果 LinkedHashMap
没有 O(n) 的运行时间,就无法做到这一点。您可以保留一个额外的 Map<String, Integer>
来自己保留元素的索引,但这确实是您唯一可以做的事情。
添加到 Louis Wasserman 答案而不是创建新地图,您可以将索引和值移动到 Pojo 并将其保存为地图中的值。
class Test{
int index;
int value;
public int getIndex();
public int getValue();
}
使用LinkedHashMap作为LinkedHashMap String,Test>