1. 概述
这篇简短的文章将展示如何使用纯Java以及基于Guava的快速示例将Map的值转换为Array、List或Set。
2. Map值转换为数组
首先,让我们看看使用普通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])是使用该方法的首选方式。正如Aleksey Shipilëv在他的博客文章中所证明的那样,它似乎更快、更安全、更干净。
3. Map值转换为列表
接下来,让我们使用纯Java将Map的值转换为List:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
List<String> targetList = new ArrayList<>(sourceMap.values());
}
以及使用Guava:
@Test
public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
List<String> targetList = Lists.newArrayList(sourceMap.values());
}
4. Map值转换为集合
最后,让我们使用纯java将Map的值转换为Set:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
Set<String> targetSet = new HashSet<>(sourceMap.values());
}
5. 总结
如你所见,所有转换都可以使用一行代码完成,仅使用Java标准集合库。
与往常一样,本教程的完整源代码可在GitHub上获得。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章