Java集合框架2024最通俗易懂(图片超全)

集合

1.1、定义

集合就是类型统一的数据组合而成的数据结构,该数据结构可以任意的改变长度。
在这里插入图片描述

1.3、Set

Set数据存储结构,无序,且不可以重复,元素可以为null,但是也只能出现一次,如下图:

在这里插入图片描述

1.3.1、HashSet

HashSet是无序且不可重复元素的Set集合。
在这里插入图片描述

package com.wlx.day13;import java.util.HashSet;
import java.util.Iterator;public class HashSetDemo
{public static void main(String[] args){//创建一个集合对象HashSet<Object>  hs = new HashSet<>();//此处表示hs集合中只能存放String字符串类型的元素
//        HashSet<String>  hs = new HashSet<>();//向Set集合中添加元素hs.add("tom");hs.add(123);hs.add(3.14);hs.add(true);hs.add('c');hs.add(new HashSetDemo());//输出集合hs中的元素System.out.println(hs);//获取集合hs中的元素个数System.out.println(hs.size());//删除集合hs中指定的元素hs.remove(123);System.out.println(hs);//使用循环遍历集合for(Object obj : hs){System.out.println(obj);}System.out.println("-------------");//获取hs的迭代器对象Iterator  it =  hs.iterator();while (it.hasNext()){System.out.println(it.next());}}
}

1.3.2、TreeSet

TreeSet可以对Set集合进行排序,默认情况下是自然排序(从小到大排序)。

package com.wlx.day13;import java.util.Iterator;
import java.util.TreeSet;public class TreeSetDemo
{public static void main(String[] args){TreeSet<Integer>  ts = new TreeSet<>();ts.add(123);ts.add(23);ts.add(12);ts.add(321);ts.add(13);System.out.println(ts);//获取集合ts中的元素个数System.out.println(ts.size());//删除集合ts中指定的元素ts.remove(123);System.out.println(ts);//使用循环遍历集合for(Integer ite : ts){System.out.println(ite);}System.out.println("-------------");//获取ts的迭代器对象Iterator<Integer> it =  ts.iterator();while (it.hasNext()){//当迭代时使用集合对象中的删除方法删除指定元素时,会出现快速失败机制//ts.remove(321);Integer ig = it.next();/*if(ig == 13){it.remove();}*/System.out.println(ig);}}
}

1.4、List

List数据存储结构,有序,且可以重复,元素可以为null,允许出现多次null值,如下图:
在这里插入图片描述

1.4.1、ArrayList

ArrayList底层是数组,在进行查询(遍历/迭代)时,速度仅次于数组,这个集合是有下标的,并且该集合中的元素是可以重复的,推荐在查询功能上使用该集合,不推荐用于删除、增加功能,性能不佳,此时推荐另一个List集合,LinkedList。
在这里插入图片描述

package com.wlx.day13;import java.util.ArrayList;
import java.util.List;public class ListDemo
{public static void main(String[] args){//创建List集合对象List<Object>  list = new ArrayList<>();list.add("tom");list.add(123);list.add(3.16);list.add(new ListDemo());list.add(true);System.out.println(list);//获取下标为1处的元素System.out.println(list.get(1));//将一个新的元素插入到下标为3处,并替换此处的元素
//        list.set(3,"jim");//将一个新的元素插入到下标为3处,不替换原有数据list.add(3,"jim");System.out.println(list);//遍历集合listfor(int i = 0;i < list.size();i++){System.out.println(list.get(i));}System.out.println("---------------------");for(Object obj : list){System.out.println(obj);}//使用迭代器迭代list集合和前面Set一样,此处省略。}
}

1.4.2、LinkedList

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.wlx.day13;import java.util.LinkedList;
import java.util.ListIterator;public class LinkedListDemo
{public static void main(String[] args){//创建LinkedList对象LinkedList<String>  linkedList = new LinkedList<>();linkedList.add("jim");linkedList.add("tom");linkedList.add("lilei");linkedList.add("lucy");/* System.out.println(linkedList);System.out.println(linkedList.size());*///堆栈/* linkedList.push("jim");linkedList.push("tom");linkedList.push("lilei");//从堆栈弹出一个元素,并移除
//        System.out.println("pop---"+linkedList.pop());//从堆栈弹出一个元素,不移除该元素System.out.println("peek---"+linkedList.peek());System.out.println(linkedList);*///队列/*System.out.println(linkedList);//获取并移除队列中队头的元素System.out.println("poll---"+linkedList.poll());System.out.println(linkedList);//获取不移除队列中队头的元素System.out.println("peek---"+linkedList.peek());System.out.println(linkedList);*///双端队列//创建双向迭代器ListIterator<String> li = linkedList.listIterator();//正向迭代System.out.println("正向迭代");/*while(li.hasNext()){System.out.println(li.next());}*/System.out.println("--------------");System.out.println("反向迭代");while (li.hasPrevious()){System.out.println(li.previous());}}
}

1.5、Map

Map数据存储结构,键值对,即key—value 一对,其中key是无序,且不可以重复的,而value是相当于有序,且可以重复的,如下图:
在这里插入图片描述

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

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

相关文章

WEB渗透Web突破篇-SQL注入(Oracle)

版本 SELECT user FROM dual UNION SELECT * FROM v$version数据库名 SELECT global_name FROM global_name; SELECT name FROM V$DATABASE; SELECT instance_name FROM V$INSTANCE; SELECT SYS.DATABASE_NAME FROM DUAL;列库 SELECT DISTINCT owner FROM all_tables;列表 …

rag输出了幻觉怎么办

首先&#xff0c;幻觉也分类型。 一个是事实性幻觉&#xff0c;就是LLM凭借自身能力回答问题&#xff0c;但是这个回答是编的&#xff0c;也可能有正确答案但是LLM输出错了。总之这是LLM自身原因。 另一个是忠实性幻觉&#xff0c;就是你要求LLM根据你给的材料给出答案&#xf…

Scikit-learn提供了哪些机器学习算法以及如何使用Scikit-learn进行模型训练和评估

Scikit-learn库的使用 一、Scikit-learn提供的机器学习算法 Scikit-learn&#xff08;通常简称为sklearn&#xff09;是一个广泛使用的Python机器学习库&#xff0c;它提供了多种用于数据挖掘和数据分析的算法。Scikit-learn支持的机器学习算法可以大致分为以下几类&#xff…

[240726] Mistral AI 发布新一代旗舰模型 | Node.js 合并 TypeScript 文件执行提案

目录 Mistral AI 发布新一代旗舰模型&#xff1a;Mistral Large 2Node.js 合并 TypeScript 文件执行提案&#xff1a;--experimental-strip-types Mistral AI 发布新一代旗舰模型&#xff1a;Mistral Large 2 Mistral AI 宣布推出新一代旗舰模型 Mistral Large 2&#xff0c;该…

算法-----递归~~搜索~~回溯(宏观认识)

目录 1.什么是递归 1.1二叉树的遍历 1.2快速排序 1.3归并排序 2.为什么会用到递归 3.如何理解递归 4.如何写好一个递归 5.什么是搜索 5.1深度&#xff08;dfs&#xff09;优先遍历&优先搜索 5.2宽度&#xff08;bfs&#xff09;优先遍历&优先搜索 6.回溯 1.什…

Temu测评自养号如何做?三分钟带你入门!

环境系统 现在市场上很多的系统都是现成的或软件包&#xff0c;没有解决风控的能力&#xff0c;如果有需要建议大家自己学习一套技术&#xff0c;把技术掌握在自己手里&#xff0c;这样不会有依赖性 手机端环境:越狱后的ios指定版本手机可以一键新机的系统(参数调试)独享的家…

梧桐数据库:子查询优化技术

在数据库技术中&#xff0c;子查询是一个强大的工具&#xff0c;但不加优化的子查询可能会导致性能问题。优化子查询可以显著提升查询效率。以下是一些常见的子查询优化技术&#xff1a; 1. 使用连接&#xff08;JOIN&#xff09;替代子查询 1.1 基本原理 很多情况下&#x…

【NLP自然语言处理】为什么说BERT是bidirectional

首先&#xff0c;来看一下Transformer架构图&#xff1a; 我们知道&#xff0c;Bert设计时主要采用的是Transformer编码器部分&#xff0c;要论述Bert为啥是双向的&#xff0c;我想从编码器和解码器的注意力机制来阐述。 在看这篇博客前&#xff0c;需要对Transformer有一定的…

[C++] vector入门迭代器失效问题详解

文章目录 vector介绍**vector iterator 的使用** vector迭代器失效问题由扩容或改变数据引起的迭代器失效reserve的实现&#xff08;野指针&#xff09;insert实现&#xff08;迭代器位置意义改变&#xff09;insert修改后失效的迭代器 it迭代器失效 erase后的问题总结&#xf…

nextjs当后端使-读取excel文件

目前nextjs有种php的感觉&#xff0c;现在的需求是读取excel文件&#xff0c;入数据库&#xff0c;拆分出读取excel的代码如下&#xff1a; import { NextRequest } from "next/server"; import { join } from "path"; import { readFile } from "fs…

MyBatis-Plus的基本使用(一)

目录 前言 特性 MyBatis-Plus入门案例 常用注解 小结 前言 这篇文章主要来学习MyBatis-Plus这个非常强大的框架. 在学习MyBatis-Plus之前,需要有MyBatis的学习基础.因为MyBatis -Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#x…

spring —— 全注解实现事务管理器

全注解实现事务管理&#xff0c;就是取消 spring-config.xml 文件&#xff0c;而将配置信息在配置类中实现。 配置类&#xff1a; package com.spring.book;import com.alibaba.druid.pool.DruidDataSource; import org.springframework.context.annotation.Bean; import org…

中英双语简单介绍:字典学习(Dictionary Learning)

中文版 字典学习&#xff08;Dictionary Learning&#xff09;是一种机器学习技术&#xff0c;用于从数据中学习一组基元&#xff08;称为“字典”&#xff09;&#xff0c;以便能够用这些基元来表示数据。该方法特别适用于稀疏表示&#xff08;Sparse Representation&#xf…

Prometheus通过注册中心nacos、Eureka 实现服务注册自动发现监控

Prometheus通过注册中心nacos、Eureka 实现服务注册自动发现监控 Prometheus通过Eureka 实现服务注册自动发现监控 使用 Prometheus 中的 Eureka (Service Discover)SD 来使用 Eureka REST API 来查询抓取目标。 Prometheus 将定期检查 REST 端点并为每个应用程序实例创建一个…

环境激活的艺术:Conda激活命令全解析

&#x1f310; 环境激活的艺术&#xff1a;Conda激活命令全解析 Conda作为Python编程生态中一个不可或缺的包管理器和环境管理器&#xff0c;为开发者提供了一个强大的工具来创建、管理并隔离不同的工作环境。本文将详细解释如何在Conda中使用conda activate命令来激活环境&am…

【Java Bean 映射器】通过 MapStruct 和 BeanUtils 拷贝对象的区别

目录 &#x1f44b;前言 &#x1f440;一、环境准备 &#x1f331;二、拷贝工具使用 2.1 BeanUtils 使用 2.2 MapStruct 使用 &#x1f49e;️三、对比 &#x1f4eb;四、章末 &#x1f44b;前言 小伙伴们大家好&#xff0c;最近在一些技术文章中看到了开发时经常接触的对…

面向对象·回顾;万类之祖object;抽象类Abstract。

回顾面向对象 类与对象 类--------&#xff08;instance实例化对象&#xff09;-------->对象 类图 调出你public方法–接口 访问控制符 常用private&#xff0c;public。 封装 可见性本类包不同包private✓✕✕不写dafalt(默认)✓✓✕protected✓✓继承✓public✓✓✓…

【工具类】Excel转图片

import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public static void transExcelToImg(String excelPath, String imgPath){//加载Excel工作表Workbook wb new Workbook();wb.loadFromFile(excelPath);//获取工作表Worksheet sheet wb.getWorksheets().get(…

ChatGPT:为什么说 NoSQL 数据库天生支持分布式,数据冗余和数据分片等特性?

ChatGPT&#xff1a;为什么说 NoSQL 数据库天生支持分布式&#xff0c;数据冗余和数据分片等特性&#xff1f; NoSQL 数据库天生支持分布式、数据冗余和数据分片等特性&#xff0c;旨在提供可扩展的高可用高性能数据存储解决方案&#xff0c;有以下几个原因&#xff1a; 1. 分…

【计算机网络】RIP路由协议实验

一&#xff1a;实验目的 1&#xff1a;掌握在路由器上配置RIPv2。 二&#xff1a;实验仪器设备及软件 硬件&#xff1a;RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。具体为&#xff1a;三层交换机1台、路由器2台。 软件&#xff1a;wireshark软件、记…