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,一经查实,立即删除!

相关文章

[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指定版本手机可以一键新机的系统(参数调试)独享的家…

【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…

MyBatis-Plus的基本使用(一)

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

【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✓✓✓…

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

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

01-调试开发k8s

使用 Docker 构建 Kubernete 官方 release 是使用 Docker 容器构建的。要使用 Docker 构建 Kubernetes&#xff0c;请遵循以下说明: Requirements docker Key scripts 以下脚本位于 build/ 目录中。请注意&#xff0c;所有脚本都必须从 Kubernetes 根目录运行 build/run.…

【科研绘图】记录一次论文结果复现

复现原论文中的图片是科研的基本功之一&#xff0c;它不仅验证了研究结果的可靠性&#xff0c;确保了科学工作的准确性和可重复性&#xff0c;还深刻地评估了方法的有效性&#xff0c;体现了对原始研究的尊重和对科学过程的严谨态度。这个过程不仅提高了研究的透明度&#xff0…

记忆注意力用于多模态情感计算!

记忆注意力用于多模态情感计算&#xff01; 目录 情感计算 一、概述 二、研究背景 三、模型结构和代码 六、数据集介绍 七、性能展示 八、复现过程 九、运行过程 模型总结 本文所涉及所有资源均在传知代码平台可获取。 情感计算 近年来&#xff0c;社交媒体的快速扩张推动了用户…

信通院发布!首个大模型混合云标准

近日&#xff0c;中国信通院发布了首个大模型混合云标准&#xff0c;通过定位当前大模型混合云的能力水平&#xff0c;为基于混合云的大模型服务实践提供指引&#xff0c;并明确未来提升方向。同时&#xff0c;中国信通院基于标准展开大模型混合云能力成熟度专项测试&#xff0…

智能家居全在手机端进行控制,未来已来!

未来触手可及&#xff1a;智能家居&#xff0c;手机端的全控时代 艾斯视觉的观点是&#xff1a;在不远的将来&#xff0c;家&#xff0c;这个温馨的港湾&#xff0c;将不再只是我们休憩的场所&#xff0c;而是科技与智慧的结晶。想象一下&#xff0c;只需轻触手机屏幕&#xf…

VMware 上的 Debian Linux 虚拟机无法听到蓝牙耳机的声音解决方案

项目场景&#xff1a; 在Debian上安装QQ音乐&#xff0c;用来摸鱼 问题描述 在安装完QQ音乐后&#xff0c;发现虚拟机无法听到声音&#xff0c;音乐有在正常播放&#xff0c;但是蓝牙耳机没有听到任何声音&#xff1a; 原因分析&#xff1a; 感觉是虚拟机的声卡没有配置&…

WiFi通信——STM32通过ESP8266-01S与阿里云通信

嵌入式设计中常用的无线通信方式主要由蓝牙、WiFi、Zigbee、Lora、NB-IOT等等。这些是最常用的&#xff0c;也是在实际项目开发中根据项目的数据通信特点来选择相应的无线通信方式。本设计主要是讲解WiFi在嵌入式开发中的使用。 1.ESP8266的三种模式 1.1 STA模式(Station) 工…

FPGA开发——独立仿真和联合仿真

一、概述 我们在进行FPGA开发的过程之中&#xff0c;大部分情况下都是在进行仿真&#xff0c;从而验证代码实现结果的正确与否&#xff0c;这里我们引入了独立仿真和联合仿真进行一个简单介绍。 联合仿真&#xff1a;一般我们在进行仿真之前需要在相应的软件中建立相应的工程…

昇思25天学习打卡营第01天|昇思MindSpore大模型基础j介绍

昇思MindSpore和华为昇思MindSpore大模型学习打卡系列文章&#xff0c;本文仅供参考~ 文章目录 前言一、昇思MindSpore是什么&#xff1f;二、执行流程三、设计理念四、层次结构五、Huawei昇腾AI全栈 前言 随着计算机大模型的不断发展&#xff0c;Ai这门技术也越来越重要&#…

【LeetCode 随笔】C++入门级,详细解答加注释,持续更新中。。。

文章目录 58.【简单】最后一个单词的长度&#x1f31f; &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xff0c;都…

使用vfbox网关实现modbus opc profinet iec61850等协议间的转换

在当今物联网&#xff08;IoT&#xff09;与工业自动化日益融合的时代背景下&#xff0c;协议转换网关作为连接不同设备与系统之间的桥梁&#xff0c;扮演着至关重要的角色。VFBox协议转换网关&#xff0c;作为这一领域内的佼佼者&#xff0c;以其高效、灵活、可靠的性能&#…