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

news2024/12/30 3:47:25

概述

在本文章中,我们对如何在 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.coloradmin.cn/o/508297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

笔试强训--Day2

1.题目: 排序子序列 排序子序列https://www.nowcoder.com/questionTerminal/2d3f6ddd82da445d804c95db22dcc471?orderBy HotValue1&page1&onlyReferencefalse 【题目解析】&#xff1a; 本题要求解的是排序子序列&#xff0c;排序子序列为非递增或者非递减&#xff0…

空气炸锅CE认证/FCC认证/PSE认证/SAA认证以及METI备案

空气炸锅属于厨房小电器&#xff0c;出口到各个亚马逊站点的空气炸锅建议做如下认证&#xff1a; 美国站&#xff1a;FCC认证&#xff0c;UL测试&#xff0c;FDA测试&#xff0c;加州65测试等。 欧洲站&#xff1a;CE认证&#xff0c;RoHS认证。 德国站&#xff1a;GS认证。 …

【沐风老师】一步一步教你在3dMax中进行UVW贴图和展开UVW的方法

将简单或程序材质应用于对象并不难。但是当表面需要在其上显示某种纹理时&#xff0c;它会变得更加复杂。任何纹理贴图都放在材质的 Diffuse 插槽中&#xff0c;但渲染的结果可能无法预测。这就是为什么我们需要了解 3DMAX 如何将纹理应用于 3D 对象&#xff0c;什么是 UVW 贴图…

【STL】模拟实现vector(详解)

文章目录 前言vector的模拟实现一&#xff0c;搭建框架二&#xff0c;实现构造函数三&#xff0c;构造的其他方式传统写法1.拷贝构造2. 重载赋值操作符3. 使用迭代器构造4. 初始化为N个val的vector 现代写法1. 拷贝构造2. 赋值重载 四&#xff0c;实现vector相关函数1. reserve…

Linux centos安装Redis数据库并远程连接

目录 前言 1. Linux(centos8)安装redis数据库 2. 配置redis数据库 3. 内网穿透 3.1 安装cpolar内网穿透 3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址 4.1 保留一个固定tcp地址 4.2 配置固定TCP地址 4.3 使用固定的tcp地址连接 前言 Redis作为一款高速缓存的ke…

周杰伦官宣数智人“周同学”,数智人与数字人,不止一字之差

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 5月8日&#xff0c;周杰伦亮相中国移动元宇宙总部&#xff0c;与中国移动达成元宇宙领域系列合作&#xff0c;共同推出了数智人“周同学”。 周杰伦从 2003 年开始代言“动感地带”&#xff0c;可以说是中国移动 20 年的忠实…

6. 神经网络

6.1 非线性假设 假设有一个监督学习分类问题&#xff0c;训练集如图 如果利用logistic回归来解决这个问题&#xff0c;我们可以构造一个包含很多非线性项的logistic回归函数。 但在这个训练集只给出了两个特征&#xff0c;如果一旦特征变多了&#xff0c;多项式就会变得很多。…

1951-2023最新中国基础地理信息,包括水系、行政区、DEM高程、气象站经纬位置、土地利用,这些数据获取方法介绍

水系&#xff1a; 流域内所有河流、湖泊等各种水体组成的水网系统&#xff0c;称作水系。其中&#xff0c;水流最终流入海洋的称作外流水系&#xff0c;如太平洋水系、北冰洋水系&#xff1b;水流最终流入内陆湖泊或消失于荒漠之中的&#xff0c;称作内流水系。 [1] 流域面积的…

File 类和 InputStream, OutputStream 的用法

目录 1.文件系统操作 File 类 2.文件内容操作 InputStream 1.创建InputStream类对象 2.读文件 OutputStream 1.创建OutputStream类对象 2.写文件 上篇博客我们详情介绍了文件系统的相关知识。在文件系统操作中&#xff0c;由于文件是在硬盘上的&#xff0c;直接写代…

分布式系统入门概述

前言 随着互联网、物联网、人工智能等技术的广泛应用&#xff0c;计算机系统正在逐渐从单机转向网络化和分布式的趋势。那么&#xff0c;什么是分布式系统呢&#xff1f; 分布式概要 简而言之&#xff0c;分布式系统是由多个节点组成的&#xff0c;这些节点运行在不同的计算机上…

企业IDC服务器迁移上云视频教程来了(Windows和Linux)

上云是趋势&#xff0c;越来越多企业的IDC服务器选择迁移上云&#xff0c;迁移上云的方式有很多&#xff0c;阿里云提供服务器迁移中心SMC来帮助用户迁移上云。使用SMC服务器迁移中心&#xff0c;将您的源服务器方便快捷地迁移至阿里云&#xff0c;支持的迁移源类型包括IDC服务…

2 ElasticaSearch安装

2 ElasticaSearch安装 2.1 安装 安装配置&#xff1a; 1、新版本要求至少jdk1.8以上。 2、支持tar、zip、rpm等多种安装方式。 在windows下开发建议使用ZIP安装方式。 3、支持docker方式安装 详细参见&#xff1a;https://www.elastic.co/guide/en/elasticsearch/refere…

Unity大面积草地渲染——3、使用GPUInstancing渲染大面积的草

大家好&#xff0c;我是阿赵。 这里开始讲大面积草地渲染的第三个部分&#xff0c;使用GPU Instancing来渲染大面积的草。 一、在不使用GPU Instancing时的渲染情况 为了能看性能明显一点&#xff0c;我写了个工具&#xff0c;在10乘10的范围内生成了一万棵草。 由于我的电…

【Python】本地版 Whisper 自动转录器(附源码网址)

目 录 一、实时自动语音转录器简介 二、开源Whisper实时转录器 三、pyinstaller 打包发布exe应用程序四、修改版源代码 一、实时自动语音转录器简介 实时自动语音转录器是一种能够自动将语音信号转换为文字的应用程序。…

【机器学习】机器学习相关概念简述

一、什么是机器学习 机器学习指的是&#xff0c;在没有明确设置的情况下&#xff0c;使得计算机拥有自我学习能力的领域。 二、监督学习和无监督学习 2.1 监督学习 监督学习是指&#xff0c;我们给予算法一个数据集&#xff0c;其中的数据包含了若干个标签。一个例子就是给…

pdf怎么转换成jpg图片

pdf怎么转换成jpg图片&#xff1f;PDF格式可以在电脑和手机上使用&#xff0c;而且其内容不会被篡改。同时&#xff0c;PDF的通用兼容性较强&#xff0c;而且PDF文件操作简单&#xff0c;易于创作。PDF文件格式应用较为广泛。在我们创建PDF文件时&#xff0c;无论在何处查看数据…

OpenGL超级宝典第七章学习笔记:顶点处理与绘图命令

前言 本篇在讲什么 OpenGL蓝宝书第七章学习笔记 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C语法有简单认知 对OpenGL有简单认知 最好是有OpenGL超级宝典蓝宝书 依赖Visual Studio编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&…

Playground AI:免费绘画图像创作工具

【产品介绍】 Playground AI是一个免费的在线 AI绘画 图像创作工具。你可以用它来创作艺术作品、社交媒体帖子、演示文稿、海报、视频、logo 等等。 Playground AI 的核心技术是基于深度学习的图像生成模型&#xff0c;它可以根据你的输入文字或图片&#xff0c;自动合成出高质…

数组的应用

数组的应用 一、数组的定义二、切片替换删除数值元素 二、数组追加元素三、数组与函数相结合 一、数组的定义 相当于一串数据的集合&#xff0c;以空格相间隔的字符串列表&#xff0c;两边用括号括起来 echo ${shuzu[]}中的代表着显示所有的下标内容&#xff0c;当然&#…

【C++初阶】类和对象(三)

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C初阶 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C初阶】…