写点什么

Java 把 Map 的值(Value)转换为 Array, List 或 Set

作者:HoneyMoose
  • 2023-04-22
    美国
  • 本文字数:929 字

    阅读完需:约 3 分钟

概述


在这篇短文中,我们将会展示如何把 Map 中的值取出来,转换为一个 Array,、List 或者一个 Set。


当然,你可以使用 Java JDK 来进行转换,你也可以使用 Guava 来进行转换。


首先,让我们来看看,如何使用原生的 Java JDK 把一个 Map 的值换行为 Array。


@Testpublic final void givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect() {    final Map<Integer, String> sourceMap = createMap();
final Collection<String> values = sourceMap.values(); final String[] targetArray = values.toArray(new String[0]);}
复制代码


在上面的代码中,我们使用了 values.toArray(new String[0]); 来对数组变量进行初始化。


根据: Arrays of Wisdom of the Ancients 文章中的内容,使用 toArray(new T[0]) 来对数组对象进行初始化更加高效和干净。


Map 的值转换为 List


下面,让我们看看如何使用原生 Java 来把一个 Map 中的值转换为 List。


@Testpublic final void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {    final Map<Integer, String> sourceMap = createMap();
final List<String> targetList = new ArrayList<>(sourceMap.values());}
复制代码


可以看到,我们还是使用了 Map 中提供的 values 方法。


使用 Guava


@Testpublic final void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {    final Map<Integer, String> sourceMap = createMap();
final List<String> targetList = Lists.newArrayList(sourceMap.values());}
复制代码


简单来说,我们只是使用 Guava 的 Lists 方法进行了下包装,核心还是使用 Map 自带的 values 方法。


Map 的值转换为 Set


最后,让我们来看看如何使用原生 Java 来把 Map 中的值转换为 Set。


@Testpublic void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {Map<Integer, String> sourceMap = createMap();


Set<String> targetSet = new HashSet<>(sourceMap.values());
复制代码


}


结论


通过上面的代码,我们可以看到 Java 是非常容易把 Map 中的值取出来转换为其他集合的。


其中核心的方法就是其自带的 values() 方法。


然后使用其他的类包装下。


https://www.ossez.com/t/java-map-value-array-list-set/14388#h-1

用户头像

HoneyMoose

关注

还未添加个人签名 2021-03-06 加入

还未添加个人简介

评论

发布
暂无评论
Java 把 Map 的值(Value)转换为 Array, List 或 Set_HoneyMoose_InfoQ写作社区