首页 > 编程语言 >Java 把 Map 的值(Value)转换为 Array, List 或 Set

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

时间:2023-04-22 18:56:59浏览次数:47  
标签:Map Set Java List sourceMap values final

概述

在这篇短文中,我们将会展示如何把 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 Ancients 文章中的内容,使用 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 中的值取出来转换为其他集合的。

 

2023-04-21_16-31-57

 

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

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

 

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

标签:Map,Set,Java,List,sourceMap,values,final
From: https://www.cnblogs.com/huyuchengus/p/17343681.html

相关文章

  • 理解 Java8 的时间API(一)时区
    理解Java8的时间API:java.time由于Java的时间API:java.util.Date、java.util.Calendar、java.util.TimeZone使用起来非常混乱,因此Java8重新设计了一套时间API,放在java.time.*包下。如果需要熟练使用新的LocalDateTime,LocalDate,LocalTime类,最好是先了解时区的概念。因此本文先......
  • Java开发 - 读写分离初体验
    前言上一篇中,我们介绍了主从复制,相信学过的小伙伴已经能够很好的掌握主从复制的技术,实际上也并没有那么难,虽然没有讲一主多从,多主多从的配置,但是从一主一从的配置中也很容易联想到该怎么配置,你没猜错,就是你想的那样。这篇博客,我们要讲解的东西是主从复制的应用——读写分离。一般来......
  • Java基础知识点API之Object
    一:概述Object是java中的顶级父类,所有的父类都直接或间接地继承于Object类。Object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法。二·:OBject的构造方法及其常用的成员方法publicObject()//空参构造classStudent(){privateStringname;private......
  • Java获取拼多多搜索词推荐 API接口(item_search_suggest-获得搜索词推荐)
    搜索词推荐的作用1.可以精准把控流量2.可以测试产品款式测试产品图片3.提升类目在平台的排名4.提升销量,加速报名参加平台的活动5.提升ROI,日常平销item_search_suggest-获得搜索词推荐公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥(接......
  • nmap详解
    初识NmapNmap是被专业人员广泛使用的一款功能全面的端口扫描工具。它由Fyodor编写并维护。由于Nmap品质卓越,使用灵活,它已经是渗透测试人员必备的工具。除了端口扫描外,Nmap还具备如下功能:123456789主机探测:Nmap可査找目标网络中的在线主机。默认情况下,Nmap通过......
  • javasec(八)jndi注入
    JNDIJNDI(全称JavaNamingandDirectoryInterface)是用于目录服务的JavaAPI,它允许Java客户端通过名称发现和查找数据和资源(以Java对象的形式)。与主机系统接口的所有Javaapi一样,JNDI独立于底层实现。此外,它指定了一个服务提供者接口(SPI),该接口允许将目录服务实现插入到框架中......
  • Java中方法的定义及注意事项
    一、方法什么是方法:方法(method)是程序中最小的执行单元实际开发中,什么时候用到方法:重复的代码、具有独立功能的代码可以抽取到方法中实际开发中,方法有什么好处:可以提高代码的复用性可以提高代码的可维护性方法的定义格式:publicstatic返回值类型方法名(参数){......
  • Python | setattr函数的使用
    在Python中,setattr()是一个内置函数,用于设置对象的属性值,该属性不一定是存在的。语法setattr()的语法如下:setattr(obj,name,value)其中,obj是要设置属性值的对象,name是要设置的属性名,value是要设置的属性值。返回值为无。示例用法示例一:classPerson:def__in......
  • Java中的堆内存和栈内存
    在Java中,堆内存和栈内存是两种不同的内存分配方式。堆内存堆内存用于存放由new创建的对象和数组。堆内存的分配由Java虚拟机的自动垃圾回收器来管理,因此程序员可以专注于业务逻辑的实现,无需关注内存回收的细节。Java虚拟机会自动检测哪些对象已经不再被引用,然后将其回收释放内......
  • map:映射库
    #include<map>usingnamespacestd;map<string,int>m1;//定义一个空的map,键类型为string,值类型为intmap<string,int>m2={{"apple",1},{"banana",2},{"orange",3}};//使用花括号进行初始化map<string,int>m3(m2);//使用拷贝构造......