Java 如何在 Array 和 Set 之间进行转换

news/2025/1/15 19:57:37/

概述

在本文章中,我们对如何在 Java 中对 Array 和 Set 进行转换进行一些说明和示例。

这些示例通过使用 Core Java 和一些第三方的转换工具,例如 Guava 和 Apache Commons Collections。

更多有关的文章,请访问:Java - OSSEZ 相关的内容和参与讨论。

从 List 转换为 Set

使用原生 Java 代码

让我们首先来看看如何在原生 Java 中把数组转换为 Set

通过下面的代码,我们了解到首先需要把 Array 转换为 List,然后再把这个 List 转换为 Set。

@Test
public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect() {Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };Set<Integer> targetSet = new HashSet<Integer>(Arrays.asList(sourceArray));
}

可选的,我们可以首先定义一个 Set 对象,然后把这个 Set 对象的元素进行填充:

@Test
public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect() {Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };Set<Integer> targetSet = new HashSet<Integer>();Collections.addAll(targetSet, sourceArray);
}

使用 Guava

我们可以使用 Guava 转换工具来把数组给出的数组来进行初始化。

@Test
public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect() {Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };Set<Integer> targetSet = Sets.newHashSet(sourceArray);
}

使用 Apache Commons Collections

最后我们可以使用 Apache 的 Commons Collection 的库来进行处理。

这个处理方法和我们使用原生 Java 代码差不多,首先需要对 Set 进行初始化,然后再把 Set 中的元素进行填充。

@Test
public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect() {Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };Set<Integer> targetSet = new HashSet<>(6);CollectionUtils.addAll(targetSet, sourceArray);
}

从 Set 转换为 Array

使用原生 Java

Set 中有一个 toArray 的方法,你可以直接使用这个方法来把给出的 Set 转换为 Array。

@Test
public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() {Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);Integer[] targetArray = sourceSet.toArray(new Integer[0]);
}

需要注意的是,我们在这里使用了 toArray(new T[0]) 来对变量进行初始化,相对使用 toArray(new T[size]) 这个方法。

使用 toArray(new T[0]) 来对数组进行初始化更加安全,快速,易读。

使用 Guava

下一步,让我们来使用 Guava 的 API 来进行转换。

@Test
public void givenUsingGuava_whenSetConvertedToArray_thenCorrect() {Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);int[] targetArray = Ints.toArray(sourceSet);
}

Ints 中有一个 toArray 的方法,这个方法将会把整数类型的 List 转换为 Array。

需要注意的是 Ints 的类型需要和数组中的类型进行匹配才可以。

结论

在 Java 的集合类型直接进行转换是我们需要经常进行操作的方法和需求。

Guava 的方法 Sets 中通常能够对 Set 进行比较好的操作,包括对 Set 的对象进行初始化。

我们可以用这个对象中的初始化参数来对数组转换为 Set。

使用 Commons Collections 还是有点晦涩。

Java 如何在 Array 和 Set 之间进行转换 - Java - OSSEZ概述在本文章中,我们对如何在 Java 中对 Array 和 Set 进行转换进行一些说明和示例。 这些示例通过使用 Core Java 和一些第三方的转换工具,例如 Guava 和 Apache Commons Collections。 更多有关的文章,请访问:Java - OSSEZ 相关的内容和参与讨论。 从 List 转换为 Set使用原生 Java 代码让我们首先来看看如何在原生 Java 中把数组…https://www.ossez.com/t/java-array-set/14417

 


http://www.ppmy.cn/news/63372.html

相关文章

LCP 68. 美观的花束

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 题目&#xff1a; 力扣嘉年华的花店中从左至右摆放了…

2023年8月24-25日|2023中国绿色数据中心峰会

2023中国绿色数据中心峰会 会议背景 应对气候变化已经成为21世纪人类社会面临的紧迫挑战&#xff0c;推进绿色发展成为全球共识。2021年12月&#xff0c;国家发改委等四部门印发的《贯彻落实碳达峰碳中和目标要求推动数据中心和5G等新型基础设施绿色高质量发展实施方案》提出…

Go 爬虫三种框架的基本使用介绍

目录 Go 爬虫三种框架的基本使用介绍1. Colly2. Golang.org/x/net/html3. GoQuery Go 爬虫示例使用Go中的http包进行爬虫Step 1&#xff1a;导入包Step 2&#xff1a;发送请求Step 3&#xff1a;读取响应Step 4&#xff1a;解析HTMLStep 5&#xff1a;总结 使用Colley爬虫 结语…

OnlineJudge-负载均衡式在线OJ

关于个人项目是在找实习以及参加秋招非常重要的简历内容&#xff0c;今天博主来介绍一下自己的一个项目。 开发环境&#xff1a;CentOS7、Makefile、g、vscode、MySQL Workbench 所用技术&#xff1a;C STL 标准库、Boost 准标准库(字符串切割)、cpp-httplib 第三方开源网络库 …

运营-9.内容消费

一个优秀的产品&#xff0c;页面层级要尽量浅 所以&#xff0c;对于常见的内容产品&#xff0c;用户做内容消费一般只涉及两层页面&#xff1a; 内容消费-图文 内容消费-视频 内容消费——免费消费模式 对于绝大部分内容产品来说&#xff0c;它们的内 容都提供免费消费模式。…

蚂蚁实时低代码研发和流批一体的应用实践

摘要&#xff1a;本文整理自蚂蚁实时数仓架构师马年圣&#xff0c;在 Flink Forward Asia 2022 流批一体专场的分享。本篇内容主要分为四个部分&#xff1a; 1. 实时应用场景与研发体系 2. 低代码研发 3. 流批一体 4. 规划展望 Tips&#xff1a;点击「阅读原文」查看原文视频&a…

面试题——selenium原理解析、appium原理解析

这里写目录标题 一、selenium原理解析1、目的2、技术点3、Selenium 介绍4、Selenium 自动化测试5、为什么能够支持这么多种浏览器&#xff1f;6、Selenium 工作原理 二、appium原理解析1、目的2、技术点3、Appium 介绍4、Appium 工作原理 一、selenium原理解析 1、目的 了解是…

2023招商Fintech数据赛道rank33 赛后分享

赛题需求&#xff1a; 本次比赛为参赛选手提供了两个数据集&#xff0c;即训练数据集(train)和测试数据集(test_A榜/test_B榜)。参赛选手需要基于训练数据集&#xff0c;通过有效的特征提取&#xff0c;构建客户进取类产品配置发生时点预测模型,并将模型应用于测试数据集上,输出…