是否有人知道如何将地图转换为列表
我在这里发现了这样的事情:
List<Value> list = new ArrayList<Value>(map.values());
但这只会将Map的值存储到List
我想要做的是:复制Key&amp;列表的价值
那么,你知道如何实现这个目标吗?
答案 0 :(得分:9)
这将为您提供地图条目列表:
List<Map.Entry<Key, Value>> list =
new ArrayList<Map.Entry<Key, Value>>(map.entrySet());
仅供参考,条目包含getKey()
和getValue()
方法。
答案 1 :(得分:3)
尝试存储map
的{{3}}:
new ArrayList<Entry<Key, Value>>(map.entrySet());
示例:强>
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("Hello", 0);
map.put("World!", 1);
ArrayList<Entry<String, Integer>> list =
new ArrayList<Entry<String, Integer>>(map.entrySet());
System.out.println(list.get(0).getKey() + " -> " + list.get(0).getValue());
}
答案 2 :(得分:3)
你可以做的一种方法是创建一个列表,添加所有键,如:
List list = new ArrayList(map.keySet());
然后添加所有值,如:
list.addAll(map.values);
然后可能你必须使用索引来访问: 如果地图大小为10,则表示列表中有20个元素。 所以你必须写一个逻辑来从列表中访问键值,并正确计算索引,如:size / 2之类的东西。 我不确定这是否有助于你的要求。
答案 3 :(得分:2)
@Bohemian和@dacwe都是对的。我还要说:在大多数情况下,您不必创建自己的列表。只需使用map.entrySet()
即可。它返回Set,但Set只是一个允许迭代其元素的Collection。在95%的情况下,迭代就足够了。