Java中的集合相关知识汇总

news2024/9/20 10:40:55

总结

  1. Java集合 从数据结构可以分为:数组、Set、Map、队列、栈;
  2. 从多线程安全可以分为线程安全与非线程安全的集合
  3. 从关联关系可以总结如下(不包含多线程安全类):
    在这里插入图片描述

点线框表示接口; 折线框表示抽象类; 实线框表示实现类;

列表

列表是存储有序的元素,元素可以重复,并且可以存null

关键方法

// 在列表最后增加一个元素e
boolean add(E e);
// 根据传入的排序规则进行排序
default void sort(Comparator<? super E> c);
// 获取指定index的元素
E get(int index);
// 移除指定O 参数命中的第一个元素
boolean remove(Object o);

具体实现类与区别

  • ArrayList:线程不安全,查询速度快
  • Vector:线程安全,但速度慢(要实现线程安全建议CopyOnWriteArrayList
  • LinkedList: 链表实现,增删速度快
  • CopyOnWriteArrayList,多线程安全列表,原理是:通过“写时复制”(Copy-On-Write)的机制(并且使用ReentrantLock加锁)来实现线程安全

Set

元素是无序的,且唯一不可重复的,Set 的实现原理是Map的Key来实现的

关键方法

// 判断是否包括对象o
boolean contains(Object o);
// 往set中传入对象e,如果set原不包含e,则返回true
boolean add(E e);
// 移除对象o,如果Set包含对象o,则返回true
boolean remove(Object o);
// 取当前Set与集合c的交集,发生更改则为true
boolean retainAll(Collection<?> c);

具体实现类与区别

持续编写中

Map

队列

迭代器

废弃的Vertor和stack

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1957415.html

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

相关文章

动态代理IP VS 静态代理IP,分别适合什么业务场景?

随着全球化进程的加深&#xff0c;使用IP代理服务的用户与日俱增。本文以“动态IP代理与静态IP代理”为探讨话题&#xff0c;对它们之间的区别、特点与应用场景作深度的对比分析。 一、含义上的区别 动态IP代理&#xff1a;互联网服务提供商&#xff08;ISP&#xff09;向用户…

Pytorch中reshape,view,transpose以及permute的详细原理及应用

在深度学习中&#xff0c;我们经常会遇到需要对张量进行形状变换的情况。PyTorch 提供了多种方法来改变张量的形状&#xff0c;包括 reshape, view, transpose和permute 。本文总结了其它博客的精华&#xff0c;详细介绍这些方法的原理和应用场景。 目录 一、张量的存储方式 …

使用 Elasticsearch 和 LlamaIndex 保护 RAG 中的敏感信息和 PII 信息

作者&#xff1a;来自 Elastic Srikanth Manvi 在这篇文章中&#xff0c;我们将研究在 RAG&#xff08;检索增强生成&#xff09;流程中使用公共 LLMs 时保护个人身份信息 (personal identifiable information - PII) 和敏感数据的方法。我们将探索使用开源库和正则表达式屏蔽 …

探索 Redis 不同集群架构的性能与应用

1. 引言 Redis的集群配置成为了提高数据可靠性和服务可用性的关键。本文将带领大家了解Redis的四种主要集群架构&#xff0c;并重点分析哨兵模式和Redis Cluster架构和优势。 2. Redis的四种集群架构 2.1 单实例Redis 使用单个 Redis 实例提供服务。适用于小规模应用&#…

C语言 #具有展开功能的排雷游戏

文章目录 前言 一、整个排雷游戏的思维梳理 二、整体代码分布布局 三、游戏主体逻辑实现--test.c 四、整个游戏头文件的引用以及函数的声明-- game.h 五、游戏功能的具体实现 -- game.c 六、老六版本 总结 前言 路漫漫其修远兮&#xff0c;吾将上下而求索。 一、整个排…

WEB前端开发中如何实现大文件上传?

大文件上传是个非常普遍的场景&#xff0c;在面试中也会经常被问到&#xff0c;大文件上传的实现思路和流程。在日常开发中&#xff0c;无论是云存储、视频分享平台还是企业级应用&#xff0c;大文件上传都是用户与服务器之间交互的重要环节。随着现代网络应用的日益复杂化&…

实况照片怎么转换成gif动图?分享5种方法!

在当今这个视觉为王的时代&#xff0c;静态的照片已经难以满足我们追求生动、有趣的表达需求。你是否也曾想过&#xff0c;将那些精彩瞬间的实况照片转换成动感十足的GIF动图&#xff0c;为社交分享增添一抹亮色&#xff1f;今天&#xff0c;就让我们一起来探索实况照片转换成G…

自闭症怎么才能摘帽?

作为星贝育园自闭症康复中心的老师&#xff0c;经常会有家长满怀期待又焦虑地问我&#xff1a;“自闭症怎么才能摘帽&#xff1f;”今天&#xff0c;我就来为大家详细说一说。 首先&#xff0c;我们要明确&#xff0c;自闭症的“摘帽”并非一蹴而就&#xff0c;而是一个…

U盘目录损坏:诊断、恢复与防范全解析

U盘目录损坏&#xff1a;数据安全的隐形挑战 在数字化生活日益普及的今天&#xff0c;U盘作为便携式数据存储设备&#xff0c;几乎成为了每个人工作、学习和生活中不可或缺的一部分。然而&#xff0c;U盘目录损坏问题却时常发生&#xff0c;给数据安全和用户体验带来了巨大挑战…

Python数值计算(10)

继续说多项式的数值及拟合&#xff0c;这次主要讨论关于多项式拟合的函数fit。定义如下&#xff1a; classmethod polynomial.polynomial.Polynomial.fit (x, y, deg, domainNone, rcondNone, fullFalse, wNone, windowNone, symbolx) Polynomial类下面有一个函数fit&#xf…

弄懂这5条深层逻辑,你也将通透豁达

01 如果正面解决不了问题&#xff0c;不妨试试从侧面或者反面进行解决。 比如&#xff0c;食堂的锅破了一个洞&#xff0c;如果你多次反映都没能解决破洞的问题&#xff0c;那不妨直接把锅捅穿&#xff0c;让锅没有办法使用&#xff0c;进而升级问题&#xff0c;把做饭不方便…

深入源码:解析SpotBugs (3) Detector

文章目录 OpcodeStackDetector常用套路调用栈visit code类检测方法检测代码行检测 前面的博客也提到过&#xff0c;Spotbugs 里面 Detector2 与 Detector&#xff0c;FindBugs2 与 FindBugs&#xff0c;GUI2与GUI&#xff0c;可以视为 Spotbugs 与 FindBugs 新老技术的碰撞&…

基于微信小程序+SpringBoot+Vue的网络安全科普系统(带1w+文档)

基于微信小程序SpringBootVue的网络安全科普系统(带1w文档) 基于微信小程序SpringBootVue的网络安全科普系统(带1w文档) 优质的网络安全科普系统不仅可以单纯的满足工作人员管理的日常工作需求&#xff0c;还可以满足用户的需求。可以降低工作人员的工作压力&#xff0c;提高效…

课程制作及教学体验革命,AI视频生成工具如何落地教育行业?

“大力发展数字教育”&#xff0c;这是2024年政府工作报告中提到的教育任务之一。同时&#xff0c;“人工智能”行动首次写入政府工作报告&#xff0c;意味着各行各业均有新的发展空间。那么&#xff0c;数字教育应该怎么做&#xff1f;此前&#xff0c;2024年全国教育工作会议…

MySQL查询执行(三):显示随机消息

假设有如下表结构&#xff1a; -- 创建表words CREATE TABLE words (id int(11) NOT NULL AUTO_INCREMENT,word varchar(64) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB;--数据生成存储过程 delimiter ;; create procedure idata() begindeclare i int;set i0;while i<…

计算机毕业设计选题推荐-财会信息管理系统-Java项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

算法通关:011:分隔链表

文章目录 题目思路代码 leetcode 86 题目 思路 左边一个往进插数字 &#xff0c;右边一个往进插数字 &#xff0c;整个队列都完了以后让左边的尾指针指向右边的头指针&#xff0c;将两个链表连起来再返回即可。代码 /*** Definition for singly-linked list.* public class L…

STM32_RTOS学习笔记——1(列表与列表项)

总体RTOS笔记目录 一&#xff0c;列表与列表项&#xff08;本文&#xff09; 二&#xff0c;待定 视频参考&#xff1a;B站野火 一&#xff0c;C语言列表概念 列表就是C语言中的链表&#xff0c;链表就如同下面的衣架一样&#xff0c;需要的各种内容可以参考 C语言链表可…

软件测试必备 - 14个接口与自动化测试练习网站

随着互联网和移动应用的快速发展,接口和自动化测试的重要性日益凸显。越来越多的企业开始重视API测试,因为它不仅能提升开发效率,还能确保系统的稳定性和安全性。这些练习网站为测试人员提供了宝贵的资源,帮助他们掌握必要的技能,应对日益复杂的测试需求。 在软件测试的世…

非关系型数据库MongoDB的基础操作

MongoDB优点: 1.MongoDB的提供了一个面向文档存储&#xff0c;操作起来比较简单和容易。 2.如果负载的增加&#xff0c;它可以分布在计算机网络中的其他节点上这就是所 谓的分片。 3. MongoDB支持各种编程语言:RUBY&#xff0c;PYTHON&#xff0c;JAVA&#xff0c;C&#xf…