List和Set之间的转换:达到集合元素去重复
在项目中看到一段代码:
return new ArrayList<>(new HashSet<LabelEnum>(list));
当时我的表情是这样的:
这把list作为构造参数创建新的集合来返回是要做什么,这里的list也是ArrayList集合,这样绕了一圈返回,恩,
想起一句话“存在即是合理”开始琢磨业务需要:list中的元素不能有重复。
那为什么不直接用HashSet呢?
因为这个list到时是要存入DTO中,所以尽量不修改原来的代码。使用list转换set再转回list,达到集合元素去重复的目的。
Set与List之间转化:
- List list = new ArrayList(set);
- Set set = new HashSet(list);
但是有一点,转换当中可能要丢失数据,尤其是从list转换到set的时候,因为set不能有重复数据
测试:
public static void main(String[] args) {List<String> list = new ArrayList<>();Collections.addAll(list, "haha", "xixi", "huihui", "haha", "aaa");//填充System.out.println("list:" + list);Set<String> set = new HashSet<>(list);//通过构造函数给set填充list中的数据,内部就是初始化后调用的addAll(Collection<T>)
// set.addAll(list);//或者用addAll(Collection<T>)方法给set填充,这时重复的数据"haha"将只存储第一个System.out.println("set:" + set);list.clear();//清空list,不然下次把set元素加入此list的时候是在原来的基础上追加元素的list.addAll(set);//把set的内容填充给listSystem.out.println("list:" + list);
}
结果:
list:[haha, xixi, huihui, haha, aaa] //说明list是有序的,可以存重复数据set:[aaa, haha, xixi, huihui] //说明set是无序的,不可以存重复数据list:[aaa, haha, xixi, huihui]
List和Set之间的转换:达到集合元素去重复相关推荐
- php for循环可以变量关联数组,数组字符串变量之间的转换,数组元素的回调,for循环遍历关联数组...
实例 header("content-type:text/html;charset=utf-8"); /*数组与字符串转换*/ //1.list()用在索引数组上 list($na ...
- 关于数组集合之间的转换
开发中经常用到数组和集合之间的转换和集合与集合之间的转换. 在JDK中有现成的API中供我们使用. 1.首先是数组和集合之间的转换: 1 import java.util.ArrayList; 2 i ...
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
1.容器API的类图结构如下: JAVA的集合类是一种特别有用的工具类,它可以用于存储数量不等的多个对象,并可以实现常用数据结构,如栈,队列等,除此之外,JAVA集合还可用于保存具有映射关系的关联数组 ...
- python列表、元组、字典、集合区别及他们之间的转换(超全)
今天想先总结一下python中数据结构区别以及他们之间能如何转换 1. 基本属性 数据结构 列表(list) 元组(tuple) 字典(dict) 集合(set) 基本形式 [123, ...
- Java集合Map,set, list 之间的转换
Java集合Map,set, list 之间的转换 前言: 通过思维导图复习联系,看到一个HashMap排序题上机题之后有的一个感想,题目如下,看看你能时间出来么? 已知一个HashMap<In ...
- java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)
数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...
- DataSet和List 泛型之间互相转换 (转载, 作者写的很好)
DataSet和List<T> 泛型之间互相转换 (转载, 作者写的很好) //DataSet与泛型集合间的互相转换 //利用反射机制将DataTable的字段与自定义类型的公开属性互相赋 ...
- python数据类型转换原因_浅谈Python数据类型之间的转换
Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 compl ...
- python变量类型之间转换_Python常用数据类型之间的转换总结
函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) ...
最新文章
- R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(不同分组配置不同的箱体填充色+自定义调色板)实战
- 适合小白学的基础知识—SSTI漏洞学习
- 报告解读丨企服必看!如何高效搭建规模化营销获客体系?
- Redis的哨兵机制 或者心跳机制 模式 原理详解
- java mysql blob 存储图片_Java操作mysql存储图片
- 轮番滑动PHP,touch事件之滑动判断(左右上下方向)
- java构建xml参数_Java中使用XML创建EMAIL模板
- Java入门到精通——基础篇之static关键字
- 如果你手头有20万,你是拿去买房还是拿去投资?
- centos安装软件格式为rpm
- 【C#每日一帖】【转】提高编码效率的一些经验
- 统计.html,分类统计.html
- 台式计算机模拟软件,仿真软件 计算机仿真模拟常用软件有那些?
- 孙子算经 之 物不知数(韩信点兵)
- JDBC的五种连接方式
- 超漂亮的网页图文排版
- [C++]深复制与浅复制
- 小型温控系统c语言程序,pid算法温度控制c语言程序 - 全文
- GE智能平台针对严苛的仿真、过程控制和数据采集应用推出反射内存节点卡
- 如何用计算机思维解决问题
热门文章
- Android 源码 Camera2 获取 CameraId 列表
- 对账系统设计详解(下)
- 阿里B2B总裁戴珊:全球化的天猫双11,普惠全球共享快乐
- Idea创建ssm的MAVEN项目
- tcl卸载会怎么样 tvac_tcl电视用adb命令免root卸载系统自带第三方软件
- c语言时钟加秒表报告,51单片机秒表计时器课程设计报告(含C语言程序)...docx
- linux7防火墙拒绝ip访问,FirewallD防火墙常用经验——开放端口——拒绝某个IP访问...
- python中元组的值可变吗_python中对象的可变与不可变
- 【洛谷P4306】连通数【bitset 传递闭包】
- Linux重定向符号和特殊符号