我有Java中的地图
Map<String, List<String>> Collections;
String - ExpandtableList的父级
列出一个孩子到可扩展名单
Example Values
<"12" , "5,6,7,8">
<"15" , "4,6,2,8">
<"17" , "1,6,7,8">
<"8" , "5,6,6,8">
我想获得临时String变量的第二个父元素和属性。(它是一个“17”)我如何引用第二个父元素并返回值?
答案 0 :(得分:0)
HashMap
中没有排序。如果您想专注于Map
订单,则应使用LinkedHashMap
。
答案 1 :(得分:0)
使用LinkedHashMap代替HashSet。 LinkedHashMap
将维护广告订单。
答案 2 :(得分:0)
如果您想在Map
中保留订单,通常会选择LinkedHashMap
。但是,使用链接的哈希映射,您仍然无法通过索引直接访问条目。您需要编写辅助函数:
static List<String> indexList(LinkedHashMap<String, List<String>> map, int index) {
int i = 0;
for(Map.Entry<String, List<String>> entry : map.entrySet()) {
if(i++ == index) {
return entry.getValue();
}
}
throw new IndexOutOfBoundException();
}
使用指向列表的地图时,您可能也有兴趣使用Guava的Multimap
。
答案 3 :(得分:0)
好吧,如果你想要“17”那么你可以写map.get(“17”)来获得List。
Java不会在这里跟踪订单,因为它使用Set
来存储数据。 map.keySet()将返回一个可以迭代的集合。
你可以希望17属于Java所做的自然顺序,并做这样的事情。
HashMap<String, List<String>> map = new HashMap<>();
int count = 0;
for (String key : map.keySet()) {
count++;
if (count == 2)
return map.get(key);
}