Java 集合Collection

集合的体系

在这里插入图片描述

Collection的结构体系

在这里插入图片描述

  • List系列集合:添加的元素是有序的、可重复、有索引
  • Set系列集合:无序、不重复、无索引
    • HashSet:无序、不重复、无索引
    • LinkedHashSet:有序、不重复、无索引
    • TreeSet:按照大小默认升序排序、不重复、无索引

Collection常见API

在这里插入图片描述

Collection<String> collection = new ArrayList<>();// 添加元素
boolean add = collection.add("Java");
collection.add("Python");
System.out.println(collection);// 删除元素 remove 如果集合中有多个相同元素,只会删除第一个
boolean remove = collection.remove("Java");
System.out.println(collection);// 判断是否包含指定元素
boolean contains = collection.contains("Python");
System.out.println(contains);// 大小
int size = collection.size();
System.out.println(size);// 清空
collection.clear();
System.out.println(collection);// 判断是否为空
boolean empty = collection.isEmpty();
System.out.println(empty);// 集合转换为数组
Object[] objects =  collection.toArray();
System.out.println(Arrays.toString(objects));// 将一个集合添加到另一个集合
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
ArrayList<String> list2 = new ArrayList<>();
list2.add("Java");
list2.add("Python");
list2.add("C++");
list.addAll(list2);
System.out.println(list);

遍历-迭代器

迭代器:遍历集合的专用方式,Java中迭代器的代表就是Iterator

在这里插入图片描述

迭代器取元素之前一定要判断还有没有元素

ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");// 获取迭代器对象
Iterator<String> iterator = list.iterator();
// 如果有下一个元素
while (iterator.hasNext()) {// 获取下一个元素String next = iterator.next();System.out.println(next);
}

遍历-增强for循环

  • 增强for循环就是迭代器的简便写法
for (String s : list) {System.out.println(s);
}

遍历-forEach

Collection.forEach(Consumer<? super E> action) 这个方法集成于Iterable接口
在这里插入图片描述

// Collection.forEach(Consumer<? super E> action)  这个方法集成于Iterable接口
list.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}
});// 使用lambda表达式
list.forEach(s -> System.out.println(s));// 前后参数一样的话使用方法引用
list.forEach(System.out::println);

集合存储对象的原理图

在这里插入图片描述

遍历删除可能出现异常

  • 解决方法:
  • 使用for循环正向删除,每次删除,i–
  • for循环逆向删除,从后向前删除
  • 使用迭代器删除的时候,不要使用集合的remove方法,使用迭代器的remove方法

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

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

相关文章

VueRouter使用,界面切换

一、安装 vue-router3&#xff0c;4分别对应vue2&#xff0c;3.。我现在用的是vue2&#xff0c; npm install vue-router3二、使用 ①首先在component路径下提前写好需要渲染的组件。 ②在App.vue中使用router声明路由。其中router-link的to指明渲染哪一个组件。router-view…

类与对象\友元

最前面加上关键字 friend友元是单向的&#xff0c;不具有交换性 实现互访需要两个类都将对方声明为自己的友元类 友元关系不具备传递性使用友元可以避免频繁调用类的接口函数&#xff0c;提高效率&#xff0c;节省开销 3种形式 友元函数&#xff1a;不属于任何类的普通函数友…

SpringBoot项目在yml或者properties文件中使用环境变量

在 application.yml 或者 application.properties 值的位置随便写这样的语法就可以替换文本 ${MYSQL_URL:192.168.0.100}比如 datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://${MYSQL_URL:192.168.0.10…

​智己舆论战完败

阅读本文大概需要 1.41 分钟 智己汽车跟小米汽车双方在社交媒体上的交锋&#xff0c;想必大家这两天应该有所耳闻&#xff0c;具体情况是这样的&#xff1a;智己发布新车 L6&#xff0c;对标小米 SU7&#xff0c;其中有一项对小米 SU7 的参数标注错误。于是小米发文要求其道歉&…

cmd输出日期及格式

编写Windows批处理时经常会需要使用到日期和时间作为文件名&#xff0c;详解如下&#xff1a; 1.获取日期 格式&#xff1a; %date% 结果&#xff1a; 2022-07-31 2.获取时间 格式&#xff1a; %time% 结果&#xff1a; 10:21:21.68 3.获取日期和时间 格式&#xff1a;…

grid布局不确定x轴或者y轴具体有多少行,但是宽高是固定的

在CSS Grid布局中&#xff0c;即使你不确定x轴&#xff08;列&#xff09;或y轴&#xff08;行&#xff09;上具体有多少元素&#xff0c;你仍然可以通过设置固定的宽度和高度来定义网格。如果你想要创建一个固定宽高的网格&#xff0c;但不确定具体的行数或列数&#xff0c;你…

huggingface无法下载模型的问题解决

OpenDevin里面的embedding模型需要从huggingface下载&#xff0c;但是连不上&#xff0c;怎么办呢&#xff1f; 以前碰到连不上&#xff0c;就放弃了&#xff0c;所以很长时间没有用过huggingface。这回OpenDevin这个软件太牛了&#xff0c;激励着我把这个这个问题解决。 从网…

从零开始学Spring Boot系列-SpringApplication

SpringApplication类提供了一种从main()方法启动Spring应用的便捷方式。在很多情况下&#xff0c; 你只需委托给 SpringApplication.run这个静态方法 &#xff1a; SpringBootApplicationpublic class SpringbootLearningApplication {public static void main(String[] args) …

【MYSQL锁】透彻地理解MYSQL锁

&#x1f525;作者主页&#xff1a;小林同学的学习笔录 &#x1f525;mysql专栏&#xff1a;小林同学的专栏 目录 1.锁 1.1 概述 1.2 全局锁 1.2.1 语法 1.2.1.1 加全局锁 1.2.1.2 数据备份 1.2.1.3 释放锁 1.2.1.4 特点 1.2.1.5 演示 1.3 表级锁 1.3.1 介绍 …

HTTP与HTTPS:深度解析两种网络协议的工作原理、安全机制、性能影响与现代Web应用中的重要角色

HTTP (HyperText Transfer Protocol) 和 HTTPS (Hypertext Transfer Protocol Secure) 是互联网通信中不可或缺的两种协议&#xff0c;它们共同支撑了全球范围内的Web内容传输与交互。本文将深度解析HTTP与HTTPS的工作原理、安全机制、性能影响&#xff0c;并探讨它们在现代Web…

docker重启错误-重启命令一直卡住

docker重启错误-重启命令一直卡住 systemctl restart docker 卡住 未知原因&#xff1a;可能是启动的容器数量过多&#xff0c;或者磁盘IO问题 解决方式&#xff1a; systemctl start docker-cleanup.service systemctl start docker Docker是一种相对使用较简单的容器&#…

蓝桥杯每日一题:扫雷(Flood Fill)

题目描述&#xff1a; 扫雷是一种计算机游戏&#xff0c;在 2020 世纪 8080 年代开始流行&#xff0c;并且仍然包含在某些版本的 Microsoft Windows 操作系统中。 在这个问题中&#xff0c;你正在一个矩形网格上玩扫雷游戏。 最初网格内的所有单元格都呈未打开状态。 其中 …

Linux第87步_阻塞IO实验

阻塞IO是“应用程序”对“驱动设备”进行操作&#xff0c;若不能获取到设备资源&#xff0c;则阻塞IO应用程序的线程会被“挂起”&#xff0c;直到获取到设备资源为止。 “挂起”就是让线程进入休眠&#xff0c;将CPU的资源让出来。线程进入休眠后&#xff0c;当设备文件可以操…

基于java+springboot+vue实现的图书管理系统(文末源码+Lw)23-259

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;图书信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…

数据结构之查找的总结

一、线性表的查找 ①、顺序查找之二分查找 int BinSearch(RecType R[], int n, KeyType k) {int low 0, high n - 1, mid;while(low < high){mid (low high) / 2;if(k R[mid].key)return mid 1;if(k < R[mid].key)high mid - 1;elselow mid 1;} return 0; }

嵌入式ARM版本银河麒麟操作系统V10SP1安装OPenGauss数据库

前言&#xff1a; 官网提供了非常完整的openGauss安装步骤。 https://opengauss.org/zh/download/archive/列举一下个人的使用环境&#xff1a; 麒麟V10 rk3588工控板&#xff08;ARM&#xff09; openGauss-3.0.5&#xff08;极简版&#xff09;浏览一下官网&#xff0c;可以…

JavaScript核心语法及数据类型详解

JavaScript是一种广泛应用于Web开发的脚本语言&#xff0c;它具有丰富的核心语法和数据类型。本文将重点回顾JavaScript的核心语法和数据类型。 JavaScript的核心语法 变量声明和赋值 在JavaScript中&#xff0c;可以使用var、let、const关键字来声明变量。 var是ES5中的变…

一网统管/安防监控/视频综合管理EasyCVR视频汇聚平台解决方案

一、当前现状分析 当前视频资源面临以下问题&#xff1a; 1&#xff09;不同单位在视频平台建设中以所属领域为单位&#xff0c;设备品牌众多&#xff0c;存在的标准不一&#xff0c;各系统之间也没有统一标准&#xff1b; 2&#xff09;各单位视频平台建设分散、统筹性差&a…

代码随想录--数组--二分查找

数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索引的方式获取到下标下对应的数据。 举一个字符数组的例子&#xff0c;如图所示&#xff1a; 需要两点注意的是 数组下标都是从0开始的。 数组内存空间的地址是连续的。 正是因为数…

第十一届 蓝桥杯 单片机设计与开发项目 省赛

第十一届 蓝桥杯 单片机设计与开发项目 省赛 01 核心框架&#xff08;多界面显示&#xff0c;界面切换&#xff0c;参数设置&#xff09; bit Seg_Disp_Mode;//0-数据界面 1-参数界面 float Temperature; unsigned char Temp_Disp[2]; unsigned char Temp_Disp_Ctrol[2] {30,…