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

概述

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

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

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

    @Test
    public 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 Ancientsicon-default.png?t=N3I4https://shipilev.net/blog/2016/arrays-wisdom-ancients/#_conclusion 文章中的内容,使用 toArray(new T[0]) 来对数组对象进行初始化更加高效和干净。

Map 的值转换为 List

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

    @Test
    public final void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {
        final Map<Integer, String> sourceMap = createMap();

        final List<String> targetList = new ArrayList<>(sourceMap.values());
    }

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

使用 Guava

    @Test
    public 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。

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

    Set<String> targetSet = new HashSet<>(sourceMap.values());
}

结论

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

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

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

Java 把 Map 的值(Value)转换为 Array, List 或 Set - Java - OSSEZ概述在这篇短文中,我们将会展示如何把 Map 中的值取出来,转换为一个 Array,、List 或者一个 Set。 当然,你可以使用 Java JDK 来进行转换,你也可以使用 Guava 来进行转换。 首先,让我们来看看,如何使用原生的 Java JDK把一个 Map 的值换行为 Array。 @Test public final void givenUsingCoreJava_whenMapValue…https://www.ossez.com/t/java-map-value-array-list-set/14388#h-1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HoneyMoose

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值