如何在Java中将映射转换为列表
将Map转换为List的最好方法是什么? 您只是重复了所有值并将其插入到列表中,或者忽略了什么?
13个解决方案
1157电压
列表列表=new ArrayList (map.values );
假设:
地图地图;
cletusanswered 2018-12-26t 02336038336021 z
125伏特
这里的问题是,List有两个值(键和值),而List只有一个值(一个元素)。
因此,获取List的密钥或值是最好的方法。 除非使用包装器保存键/值对。
假设有一个列表:
Map m=new HashMap (;
m.put(Hello )、(World );
m.put(apple,) 3.14 );
m.put (通告程序)、) Element );
可以通过从List方法返回的List创建新的List来获取用作List的密钥。
列表列表=new ArrayList (m.keyset );
可以根据List方法返回的List创建新的ArrayList,但其值为List。
列表列表=new ArrayList (m.values );
获取List密钥的结果:
苹果电脑
通告程序
你好
获取List值的结果:
3.14
元素
世界杯
coobirdanswered 2018-12-26t 02336039336008 z
28电压
使用Java 8流API。
List values=map.values ().stream ).collect (collectors.to list ) );
matejkormuthanswered 2018-12-26t 02336039336028 z
20伏特
Map.EntrySet ()提供了map.entry对象的集合,包括键和值。 然后,可以将其转换为任何集合对象,如newarraylist(map.entryset )。
javadudeanswered 2018-12-26t 02336039336048 z
20伏特
什么名单?
假设map.keySet ()是Set的实例
map.keySet ) )返回包含所有贴图值的Set。
map.keySet ()返回包含所有映射键的Set。
diegoamicabileanswered 2018-12-26t 02336040336021 z
12电压
您想将Collection中包含的值转换为Map吗? 最简单的是调用Map接口的Map方法。 它返回列表中包含的值对象的列表。
请注意,此Collection由Map对象支持,对Map对象的更改将反映在此处。 因此,如果要创建另一个未绑定到Map对象的副本,请创建一个新的List对象,如ArrayList,然后传递值Collection,如下所示:
ArrayList list=new ArrayList (map.values );
maneeshanswered 2018-12-26t 02336040336047 z
6电压
你可以这样做
列表列表=new ArrayList (map.values );
user 3752441 answered 2018-12-26t 02336041336007 z
4电压
要确保结果映射的值是输入Hashtable的密钥排序,必须以某种方式“通过”ConcurrentHashMap。
从特定的Map实现(如Hashtable )开始,或输入ConcurrentHashMap以插入到SortedMap并将其转换为列表。 例如:
地图地图;
列表列表=新阵列列表(新流)映射);
否则,获取Map实现提供的本机订单。 这通常不是自然的密钥排序。 (尝试Hashtable或ConcurrentHashMap以用于多样化。 )。
m0 les answered 2018-12-26t 02336041336036 z
3电压
Map map=new HashMap (;
map.put('Java ',20 );
map.put('c ',45 );
Set set=map.entrySet (;
列表列表=新阵列列表(set;
列表可以同时包含键/值对。 也可以使用Map.Entry从迭代列表中检索键和值。
user 11 answered 2018-12-26t 02336041336056 z
0电压
'映射图=new haps hmap;
map.add(one,) java );
map.add('two ',' spring ' );
Set set=map.entrySet (;
列表列表=新阵列列表(set;
进入项:列表(for ) {
system.out.println (entry.getkey ) );
system.out.println (输入. getvalue ();
sivaprasadanswered 2018-12-26t 02336042336012 z
0电压
HashMap map=new HashMap (;
列表列表=new ArrayList (;
list.add(Java );
list.add (主面);
list.add(JSF );
map.put(1,list;
If (地图!=空) {
返回新阵列((collectionextendsstring ) map.values );
}
hakananlamazanswered 2018-12-26t 02336042336028 z
0电压
//you can use this
列表列表=new ArrayList (map.values );
//or you may use
列表列表=new ArrayList (;
for (map.entry entry : map.entryset ) )
{
list.add (输入. getvalue ) );
}
saurabhgoyal 795 answered 2018-12-26t 02336042336043 z
- 1电压
这是从map获取值的常用方法。
publicstaticlistvaluelistfrommap {
列表thing list=new ArrayList (;
for (map.entry entry : map.entryset ) )
thing list.add (输入. getvalue ) );
}
返回定时列表;
}
hiralpancholianswered 2018-12-26t 0233604336003 z