如何转换一个Map在Java中列出?如何转换一个Map在Java中列出?(How to conver

2019-05-13 14:47发布

什么是转换的最佳途径Map<key,value>List<value> ? 只是遍历所有的值,并在列表中插入他们还是我忽视的东西?

Answer 1:

List<Value> list = new ArrayList<Value>(map.values());

假设:

Map<Key,Value> map;


Answer 2:

这里的问题是, Map有两个值(键和值),而List只有一个值(元素)。

因此,可以做到最好的是要么得到一个List或键的值。 (除非我们做一个包装扶住键/值对)。

假设我们有一个Map

Map<String, String> m = new HashMap<String, String>();
m.put("Hello", "World");
m.put("Apple", "3.14");
m.put("Another", "Element");

作为该键List可以通过创建一个新获得ArrayListSet由返回Map.keySet方法:

List<String> list = new ArrayList<String>(m.keySet());

而作为一个值List可以得到创建一个新ArrayListCollection由返回Map.values方法:

List<String> list = new ArrayList<String>(m.values());

得到的结果List键:

Apple
Another
Hello

得到的结果List值:

3.14
Element
World


Answer 3:

使用Java 8流API。

List<Value> values = map.values().stream().collect(Collectors.toList());


Answer 4:

map.entrySet()为您提供了一个集合Map.Entry对象含有键和值。 那么你就可以变身为你喜欢的,如任何集合对象这个new ArrayList(map.entrySet()) ;



Answer 5:

一个什么样的名单?

假设map是你的实例Map

  • map.values()将返回一个Collection包含所有地图的价值观。
  • map.keySet()将返回一个Set包含所有地图的钥匙。


Answer 6:

我猜你要包含在该值转换Map到一个list ? 最简单的是调用values()的方法Map界面。 这将返回Collection中包含的值对象的Map

请注意,这Collection是由支持Map对象和对任何更改Map对象将体现在这里。 所以,如果你想有一个单独的副本不会绑定到你的Map对象,只需创建一个新的List类似于对象ArrayList传递值Collection如下。

ArrayList<String> list = new ArrayList<String>(map.values());


Answer 7:

你可以像下面这样做

List<Value> list = new ArrayList<Value>(map.values());


Answer 8:

如果你想以确保结果的值List<Value>在输入的按键排序Map<Key, Value> ,你需要“通过走出去” SortedMap莫名其妙。

无论是用混凝土开始 SortedMap实现(如TreeMap ),或者将您的输入MapSortedMap转化,为之前List 。 例如:

Map<Key,Value> map;
List<Value> list = new ArrayList<Value>( new TreeMap<Key Value>( map ));

否则,你会得到什么本地排序的Map实现提供,而这往往是比自然键排序(尝试其他东西HashtableConcurrentHashMap ,对品种)。



Answer 9:

    Map<String, Integer> map = new HashMap<String, Integer>();
    map.put("java", 20);
    map.put("C++", 45);

    Set <Entry<String, Integer>> set = map.entrySet();

    List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(set);

我们可以在list.Also key和value对可以通过遍历列表得到键和值使用的Map.Entry。



Answer 10:

// you can use this
List<Value> list = new ArrayList<Value>(map.values());

// or you may use 
List<Value> list = new ArrayList<Value>();
for (Map.Entry<String, String> entry : map.entrySet())
{
list.add(entry.getValue());    
}


Answer 11:

"Map<String , String > map = new HapshMap<String , String>;
 map.add("one","java");
 map.add("two" ,"spring");
 Set<Entry<String,String>> set =  map.entrySet();
 List<Entry<String , String>> list = new ArrayList<Entry<String , String>>    (set);
 for(Entry<String , String> entry : list ) {
   System.out.println(entry.getKey());
   System.out.println(entry.getValue());
 } "


Answer 12:

这里的通用方法从地图获取值。

public static <T> List<T> ValueListFromMap(HashMap<String, T> map) {
    List<T> thingList = new ArrayList<>();

    for (Map.Entry<String, T> entry : map.entrySet()) {
        thingList.add(entry.getValue());
    }

    return thingList;
}


Answer 13:

HashMap<Integer, List<String>> map = new HashMap<>(); 
List<String> list = new ArrayList<String>();
list.add("Java");
list.add("Primefaces");
list.add("JSF");
map.put(1,list);
if(map != null){
    return new ArrayList<String>((Collection<? extends String>) map.values());
}


文章来源: How to convert a Map to List in Java?