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日

相关文章

  • LibrarySystem图书管理系统(二)

    LibrarySystem图书管理系统(二)攻略 一、概述 本文主要针对“LibrarySystem图书管理系统(二)”的学习内容,进行详细的攻略说明,包括系统的整体架构、功能模块及其实现方式等。 二、整体架构 LibrarySystem图书管理系统(二)是一个基于Java Web技术实现的图书管理系统,主要包含以下几个模块: 图书管理模块 图书借阅模块 图…

    Java 2023年5月24日
    00
  • java发送kafka事务消息的实现方法

    Java发送Kafka事务消息的实现方法可以分为以下步骤: 步骤一:配置事务环境 配置Kafka事务环境需要设置事务ID和Kafka事务的属性。以下是示例代码: Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092&…

    Java 2023年5月20日
    00
  • 使用Spring Boot搭建Java web项目及开发过程图文详解

    下面我会为您详细讲解使用SpringBoot搭建JavaWeb项目及开发过程。本文将按照以下步骤详细展开: 环境准备及SpringBoot的简介 创建一个简单的SpringBoot项目 开发一个简单的RESTful接口 创建一个数据库,并通过MyBatis实现与之交互 使用Thymeleaf模板引擎开发前端页面 部署及运行项目 环境准备及SpringBoot…

    Java 2023年5月15日
    00
  • InputStreamReader 和FileReader的区别及InputStream和Reader的区别

    关于InputStreamReader和FileReader的区别,以及InputStream和Reader的区别,我们需要从数据输入、数据输出两个方面来讲解。 InputStreamReader 和 FileReader 的区别 InputStreamReader和FileReader都是读取字符流的类,主要区别在于它们输入的数据源不同。 InputStr…

    Java 2023年5月20日
    00
  • PHP实现压缩图片尺寸并转为jpg格式的方法示例

    要实现压缩图片尺寸并转为jpg格式,可以使用PHP语言的GD库来实现。GD库提供了丰富的图像处理功能,可以帮助我们快速地处理图片。以下是步骤: 步骤一:安装GD库 在PHP安装中,GD库一般都是预装的,我们可以通过phpinfo()函数来确认是否已经开启GD库。如果没有开启,需要修改php.ini文件,把extension=gd.so前面的分号去掉即可。 步…

    Java 2023年5月23日
    00
  • 解决Spring Security的权限配置不生效问题

    下面我将详细讲解“解决Spring Security的权限配置不生效问题”的完整攻略,主要包含以下几个方面: 检查Spring Security的依赖与配置是否正确 首先,我们需要检查Spring Security的依赖是否正确,主要是确认pom.xml或者build.gradle文件中是否配置了正确的Spring Security版本以及依赖。 其次,我们…

    Java 2023年5月20日
    00
  • 详解SpringBoot通过restTemplate实现消费服务

    在Spring Boot中,我们可以使用RestTemplate来消费RESTful服务。RestTemplate是Spring框架提供的一个HTTP客户端,它可以发送HTTP请求并接收HTTP响应。在本攻略中,我们将详细介绍如何使用RestTemplate来消费服务,并提供两个示例来说明其用法。 以下是两个示例,介绍如何使用RestTemplate来消费服…

    Java 2023年5月15日
    00
  • 一篇文章带你了解Java Spring基础与IOC

    一篇文章带你了解Java Spring基础与IOC 什么是Java Spring? Java Spring是一个轻量级的开源Java框架,它被广泛地应用于企业级Java应用开发中。它提供了一系列的工具和框架来帮助开发者构建易于维护和易于扩展的Web应用或企业应用。 Java Spring的核心特点包括: 依赖注入(DI)和控制反转(IoC)模式 面向切面编程…

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