您的位置:

详解Map转List

一、Map和List的区别

Map和List都是Java中的数据结构。它们最大的区别是:Map是一种键值对的集合,而List是一种有序的集合。

Map中每一个元素是由键和值组成,通过键可以找到对应的值;List的元素是按照一定顺序排列的,通过下标可以找到对应的元素。

下面是Map和List的定义:

Map map = new HashMap<>();
List
    list = new ArrayList<>();

   
  

二、Map转List

1、使用for循环

使用for循环逐个遍历Map的键值对,将其转换成List的元素。下面是示例代码:

Map map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

List
    list = new ArrayList<>();
for (Map.Entry
     entry : map.entrySet()) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    list.add(key + ": " + value);
}

System.out.println(list);  // ["apple: 1", "banana: 2", "orange: 3"]

    
   
  

2、使用stream

使用Java8引入的stream API可以简化代码,并且具有更高的可读性。下面是示例代码:

Map map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

List
    list = map.entrySet().stream()
                .map(entry -> entry.getKey() + ": " + entry.getValue())
                .collect(Collectors.toList());

System.out.println(list);  // ["apple: 1", "banana: 2", "orange: 3"]

   
  

3、使用Guava的Lists.newArrayList()

Guava是Google开源的Java工具库,其中的Lists类提供了很多集合操作的工具方法。其中的newArrayList方法可以将Map转换成List。

Map map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);

List
   
    > list = Lists.newArrayList(map.entrySet());

System.out.println(list);  // [apple=1, banana=2, orange=3]

    
   
  

三、总结

本文详细阐述了Map转List的方式,包括使用for循环、stream和Guava的Lists.newArrayList()。不同的方式适用于不同的场景,使用stream可以使代码更简洁、易读,而Guava提供的工具方法则可以更方便地进行一些集合操作。通过本文的介绍,希望能够帮助读者更好地理解Map和List的区别,并且学习到不同的Map转List的方式。