一、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<Map.Entry> 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的方式。
原創文章,作者:YUKBA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/315896.html