java list,set,map,数组间的相互转换详解

Java List, Set, Map, 数组间的相互转换详解

在Java中,我们通常会使用List、Set、Map、数组这几种数据结构。他们各自有自己的特点和用途。有时我们需要将它们之间相互进行转换,下面是转换的方法和示例说明。

1. List 和 数组的相互转换

List 转 数组

使用 List 的 toArray 方法可以将 List 转为数组,方法如下:

List<String> strList = new ArrayList<>();
strList.add("Java");
strList.add("Scala");
strList.add("Python");

String[] strArray = strList.toArray(new String[strList.size()]);

数组转 List

使用 Arrays.asList 可以将数组转为 List,方法如下:

String[] strArray = {"Java", "Scala", "Python"};
List<String> strList = Arrays.asList(strArray);

2. Set 和 数组的相互转换

Set 转 数组

使用 Set 的 toArray 方法可以将 Set 转为数组,方法如下:

Set<String> strSet = new HashSet<>();
strSet.add("Java");
strSet.add("Scala");
strSet.add("Python");

String[] strArray = strSet.toArray(new String[strSet.size()]);

数组转 Set

使用 Arrays.stream 将数组转为 Stream,再使用 Collectors.toSet 将 Stream 转为 Set,方法如下:

String[] strArray = {"Java", "Scala", "Python"};
Set<String> strSet = Arrays.stream(strArray).collect(Collectors.toSet());

3. Map 和数组的相互转换

Map 转 数组

将 Map 的 key 或 value 转为数组,方法如下:

Map<String, Integer> map = new HashMap<>();
map.put("Java", 10);
map.put("Scala", 20);
map.put("Python", 30);

String[] keys = map.keySet().toArray(new String[map.size()]);
Integer[] values = map.values().toArray(new Integer[map.size()]);

数组转 Map

将两个数组合并为 Map,方法如下:

String[] keys = {"Java", "Scala", "Python"};
Integer[] values = {10, 20, 30};

Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < keys.length; i++) {
    map.put(keys[i], values[i]);
}

4. List 和 Set 的相互转换

List 转 Set

使用 HashSet 的构造函数可以将 List 转为 Set,方法如下:

List<String> strList = new ArrayList<>();
strList.add("Java");
strList.add("Scala");
strList.add("Python");

Set<String> strSet = new HashSet<>(strList);

Set 转 List

使用 ArrayList 的构造函数可以将 Set 转为 List,方法如下:

Set<String> strSet = new HashSet<>();
strSet.add("Java");
strSet.add("Scala");
strSet.add("Python");

List<String> strList = new ArrayList<>(strSet);

5. 示例说明

示例 1:将 List 转为数组,再将数组转为 Set

List<String> strList = new ArrayList<>();
strList.add("Java");
strList.add("Scala");
strList.add("Python");

String[] strArray = strList.toArray(new String[strList.size()]);

Set<String> strSet = new HashSet<>(Arrays.asList(strArray));

System.out.println(strSet);

输出结果:

[Java, Scala, Python]

示例 2:将 Map 中的 key 和 value 分别转为数组

Map<String, Integer> map = new HashMap<>();
map.put("Java", 10);
map.put("Scala", 20);
map.put("Python", 30);

String[] keys = map.keySet().toArray(new String[map.size()]);
Integer[] values = map.values().toArray(new Integer[map.size()]);

System.out.println(Arrays.toString(keys) + " " + Arrays.toString(values));

输出结果:

[Java, Scala, Python] [10, 20, 30]

以上就是 Java List、Set、Map、数组之间相互转换的详细攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java list,set,map,数组间的相互转换详解 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • java实现字符串反转案例

    首先,在Java中,String类是不可变的,意味着反转字符串不会改变原字符串,而是产生一个新的字符串。下面是反转字符串的步骤: 1.将字符串转换成字符数组。2.使用双指针方法交换字符数组中的字符顺序。3.将字符数组转换回字符串。 以下是完整的Java代码示例: public class StringReverseExample { public stati…

    Java 2023年5月26日
    00
  • 详解tomcat各个端口的作用

    详解Tomcat各个端口的作用 本文将详细介绍 Tomcat 各个端口的作用,帮助用户更好地了解 Tomcat 的运行机制。 Tomcat 的端口 Tomcat 有三个最重要的端口,它们分别是: 8080: HTTP 请求的默认端口,用于 Web 应用程序和客户端之间的通信。 8005: Shutdown 端口,用于远程关闭 Tomcat 服务。 8009:…

    Java 2023年5月19日
    00
  • java实现文件读写与压缩实例

    Java实现文件读写与压缩实例 文件读取 Java中可以通过File类和FileInputStream类来实现文件读取。其中,File类用于表示文件对象,而FileInputStream类用于读文件的数据流。 下面是一个简单的文件读取的示例代码,读取指定路径下的txt文件: import java.io.File; import java.io.FileIn…

    Java 2023年5月20日
    00
  • SpringBoot打成war包在tomcat或wildfly下运行的方法

    下面是讲解 Spring Boot 打成 WAR 包以及在 Tomcat 或 Wildfly 上运行的详细攻略: 1. Spring Boot 打成 WAR 包 Spring Boot 默认情况下是以嵌入式 Tomcat 启动的,如果我们希望将 Spring Boot 应用部署到外部 Tomcat 或 Wildfly 中,我们可以将其打包成 WAR 包。 1…

    Java 2023年5月19日
    00
  • Java编程基础元素-运算符

    Java编程基础元素-运算符 介绍 在Java编程中,运算符是用于对数据进行操作的一种符号或关键字。Java编程语言支持以下类型的运算符: 算术运算符 关系运算符 位运算符 逻辑运算符 条件运算符 赋值运算符 这些运算符可以应用于不同的数据类型,例如整数、字符、浮点数、布尔值等。 算术运算符 算术运算符用于执行基本的算术操作,例如加、减、乘、除和取模运算。J…

    Java 2023年5月26日
    00
  • 关于kafka发送消息的三种方式总结

    关于kafka发送消息的三种方式总结,是一篇介绍kafka发送消息的方法的文章,有助于理解kafka在分布式系统中的作用。这篇文章结合了官方文档和各种实践经验,详细介绍了kafka发送消息的三种方式,并提供了示例代码。 1. 普通的同步发送 kafka的producer提供了send()方法,可以通过这个方法来发送消息。在发送消息时,可以指定消息所属的top…

    Java 2023年5月20日
    00
  • Java Spring的两种事务你知道吗

    让我们来详细讲解一下“Java Spring的两种事务”。 什么是事务? 在计算机领域,事务是一组数据库操作,它们要么全部成功执行,要么全部失败回滚,不会出现部分操作成功、部分操作失败的情况。在Java编程中,我们可以使用Java Spring框架来管理事务。 Spring事务的两种类型 在Java Spring框架中,Spring事务主要包含两种类型:基于…

    Java 2023年6月2日
    00
  • Spring简明分析Bean作用域

    针对“Spring简明分析Bean作用域”的问题,我给您提供以下完整攻略: 一、什么是Spring Bean作用域 Spring Bean的作用域是指在Spring容器中实例化一个bean对象时它的使用范围,即该bean对象在Spring容器中的生命周期中存在的范围。 Spring支持五种作用域: singleton(默认作用域) prototype req…

    Java 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部