用Java將Map轉換為Array,List或Set
1.概述
這篇簡短的文章將展示如何使用純Java以及基於Guava的快速示例將Map的值轉換為數組,**列表或集合。
本文是Baeldung上的“ Java – Back to Basic”系列的一部分。
進一步閱讀:
遍歷Java中的Map
學習遍歷Java中Map條目的不同方法。
閱讀更多→
map()和flatMap()之間的區別
通過分析Streams和Optionals的一些示例,了解map()和flatMap()之間的區別。
閱讀更多→
如何在Java中的地圖中存儲重複鍵?
快速實用的指南,通過在Java中使用多重映射來處理重複鍵。
閱讀更多→
2.將值映射到數組
首先,讓我們看一下使用純java將Map的值轉換為數組:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
Collection<String> values = sourceMap.values();
String[] targetArray = values.toArray(new String[0]);
}
注意,與toArray(new T [size])相比, toArray(new T [0])是使用該方法的首選方法。正如AlekseyShipilëv在其博客文章中所證明的那樣,它看起來更快,更安全,更乾淨。
3.將值映射到列表
接下來,讓我們使用純Java將Map的值轉換為List:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
List<String> targetList = new ArrayList<>(sourceMap.values());
}
並使用番石榴:
@Test
public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
List<String> targetList = Lists.newArrayList(sourceMap.values());
}
4.映射要設置的值
最後,讓我們使用純Java將Map的值轉換為Set:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
Set<String> targetSet = new HashSet<>(sourceMap.values());
}
5.結論
如您所見,僅使用Java標準集合庫,所有轉換都可以在一行中完成。
所有這些示例和代碼段的實現都**可以在GitHub項目上找到**–這是一個基於Maven的項目,因此應該很容易直接導入和運行。
0 條評論,你可以發表評論,我們會進行改進
