Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java中的List与Set转换「建议收藏」

Java中的List与Set转换「建议收藏」

作者头像
全栈程序员站长
发布于 2022-06-24 12:08:54
发布于 2022-06-24 12:08:54
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

一、List列表与Set列表的区别

List列表是有序、可以重复、线程不安全的列表,Set是无序、不能重复、线程不安全的列表。但List和Set可以通过方法来转换为线程安全的,加互斥锁。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  Set<Long> set=new HashSet<>();
  // 转换为线程安全的集合
   Collections.synchronizedSet(set);

  List<Long> lists=new ArrayList<>();
   Collections.synchronizedList(lists);

二、List与Set的转换

1) List转换为set

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 List<Long> ids=new ArrayList<>();
 HashSet<Long> set=new HashSet<>(ids);

2) Set转换为List

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 HashSet<Long> set=new HashSet<>();
 List<Long> ids=new ArrayList<>(set);

此处都可以使用 addAll()方法来替换。

需要注意的是: List转换为Set的时候,当有重复数据时,转换为出现数据丢失的情况,因为Set集合不允许有重复数据。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151890.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
⾯试最常⻅问题之 Java 集合框架
1. List:列表,有序集合,可以包含重复元素。主要实现类有ArrayList和LinkedList。
疯狂的KK
2023/05/28
6660
⾯试最常⻅问题之 Java 集合框架
JUC系列(三) 不安全的集合类
答 : 因为只要使用 sync关键字,效率都会低一些,而CopyOnWriteArrayList,底层的方法是用的lock锁
冷环渊
2022/11/12
3060
JUC系列(三) 不安全的集合类
集合中的线程初体验
本章继续讲集合,先来看看Set集合。Set集合的特点,1:无序,2:无重复。上一章讲了HashMap,最后提到HashSet的底层实现其实就是HashMap。那么为什么用HashMap就可以实现无序和不重复,下面看看具体如何使用HashMap实现HashSet。
用户5745563
2019/07/04
4010
集合中的线程初体验
Java一分钟之-高级集合框架:并发集合(Collections.synchronizedXXX)
在多线程环境中,共享数据的同步是至关重要的。Java集合框架提供了Collections.synchronizedXXX方法,将普通集合转换为线程安全的版本。本文将探讨这些同步集合的常见问题、易错点及如何避免,同时提供代码示例。
Jimaks
2024/05/28
5970
Java一分钟之-高级集合框架:并发集合(Collections.synchronizedXXX)
Java【代码 09】多线程处理List数据核心代码说明(下标越界、数据丢失及效率问题)
yuanzhengme
2025/07/25
970
并发编程踩坑实录一:盘点JDK中同步容器的两大坑!!
说实话,在实际的工作过程中,我在使用JDK中的并发容器时,确实踩过不少坑。为了让小伙伴们更好的消化这些知识,
冰河
2021/08/13
3940
【JUC基础】11. 并发下的集合类
我们直到ArrayList,HashMap等是线程不安全的容器。但是我们通常会频繁的在JUC中使用集合类,那么应该如何确保线程安全?
有一只柴犬
2024/01/25
1470
【JUC基础】11. 并发下的集合类
并发编程-13线程安全策略之两种类型的同步容器
上篇 并发编程-12线程安全策略之常见的线程不安全类讲了一些常用的线程不安全的集合容器(ArrayList、HashMap、HashSet),如果有多个线程并发访问这些集合时就会出现线程不安全的问题。 当我们在使用这些容器时,需要我们自己来处理线程安全的问题。 使用起来相对会有些不便,而Java在这方面提供了相应的同步容器,我们可以在多线程情况下可以结合实际场景考虑使用这些同步容器。
小小工匠
2021/08/17
3210
同步 Java 集合简介-Java快速入门教程
集合框架是Java的关键组件。它提供了大量的接口和实现,使我们能够以简单的方式创建和操作不同类型的集合。
jack.yang
2025/04/05
970
全网最细 | 21张图带你领略集合的线程不安全
集合框架有Map和Collection两大类,Collection下面有List、Set、Queue。List下面有ArrayList、Vector、LinkedList。如下图所示:
悟空聊架构
2022/05/13
2070
全网最细 | 21张图带你领略集合的线程不安全
# 全网最细 | 21张图带你领略集合的线程不安全
集合框架有Map和Collection两大类,Collection下面有List、Set、Queue。List下面有ArrayList、Vector、LinkedList。如下图所示:
悟空聊架构
2020/09/01
5170
初学者第58节之Collections工具类
此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。
用户5224393
2019/08/20
4980
【JUC】003-集合类多线程不安全
* 1、使用List<String> list = new Vector<>();,这个答案对,但是一个很笨拙的答案; * 2、让ArrayList变得安全:List<String> list = Collections.synchronizedList(new ArrayList<>()); * 3、JUC的解决方案:List<String> list = new CopyOnWriteArrayList<>();
訾博ZiBo
2025/01/06
1020
【JUC】003-集合类多线程不安全
Java--集合类之Collection与Map
上一篇:Java--集合类之Vector、BitSet、Stack、Hashtable 集合(Collection):一组单独的元素,通常应用了某种规则。在这里,一个 List(列表)必须按特定的顺序容纳元素,而一个Set(集)不可包含任何重复的元素。相反,“包”(Bag)的概念未在新的集合库中实现,因为“列表”已提供了类似的功能。 映射(Map):一系列“键-值”对(这已在散列表身上得到了充分的体现)。从表面看,这似乎应该成为一个“键-值”对的“集合”,但假若试图按那种方式实现它,就会发现实现过程相当笨拙
SuperHeroes
2018/05/22
9970
Java Review (三十、集合----- 操作集合的工具类: Collections)
Java 提供了一个操作 Set 、 List 和 Map等集合的类:Collections , 该工具类里提供了大量方法对集合元素进行排序、 查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法 。
三分恶
2020/07/16
4950
不安全的集合类Set
使用   Collections.synchronizedSet(new HashSet<>());  将Set转换为安全的Set
余生大大
2022/11/02
2350
不安全的集合类Set
Collection 集合中的线程安全问题
1 List package com.shi.list; import java.util.List; import java.util.UUID; import java.util.concurrent.CopyOnWriteArrayList; /** * ArrayList再线程安全不安全方面的问题 * @author shiye * 1 new ArrayList<>(); * 结果:抛出大量的异常 * java.util.ConcurrentModificationExcept
用户5927264
2019/09/12
7940
Collection 集合中的线程安全问题
集合线程安全问题:第一章:集合类不安全之并发修改异常
只要你干过电商项目的基本上都见过,java.util.ConcurrentModificationException并发修改异常
Java廖志伟
2022/09/28
3220
集合线程安全问题:第一章:集合类不安全之并发修改异常
Java集合类线程安全性分析与线程安全集合的选择
在Java编程中,集合类是常用的数据结构,但并不是所有集合类都是线程安全的。本文将深入探讨ArrayList、HashSet和HashMap的线程安全性,并介绍如何选择合适的线程安全集合。
疯狂的KK
2023/08/08
1K0
Java集合类线程安全性分析与线程安全集合的选择
请简述list,set,map类型的集合的各自特点_list与set的区别
HashMap 是线程不安全的,HashMap 是一个接口,是 Map的一个子接口,是将键映射到值得对象,不允许键值重复,允许空键和空值;由于非线程安全, HashMap的效率要较 HashTable 的效率高一些. HashTable 是线程安全的一个集合,不允许 null 值作为一个 key 值或者 Value 值; HashTable 是 sychronize(同步化),多个线程访问时不需要自己为它的方法实现同步,而 HashMap 在被多个线程访问的时候需要自己为它的方法实现同步;
全栈程序员站长
2022/10/29
8310
推荐阅读
相关推荐
⾯试最常⻅问题之 Java 集合框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档