集合体系介绍、collection的使用--java进阶day09
1.集合体系结构
我们要学习的集合大体分为两种,一种是单列集合,一种是双列集合

2.单列集合
单列集合又分为两个派系,分别为list接口和set接口,这两个接口皆是collection接口的子接口

3.Collection接口

既然要使用,那就必然要创建对象,但我们知道Collection是接口,不能实例化
我们可以使用多态的方式创建对象,但要注意,list和set也是接口,不是类!我们可以使用最熟悉的ArrayList来实现

1.add、clear、isEmpty展示

.

要注意,isEmpty是不对null进行判断的,否则会导致空指针异常

2.remove
返回值是判断是否删除成功

.

3.contains
判断集合里是否有该元素,有就返回true,否则false

.

4.remove和contains的注意事项

刚才我们使用的例子中,泛型都是String,我们现在换个泛型,使用自己创建的学生类

上图中,add方法是没有问题,那我们开始调用remove方法做删除
下图中,我们会发现李四没有删除成功

这是因为我们new了两次李四,有两个不同的地址,集合在删除的时候拿着新new的李四地址找,发现两种地址不同,也就删除失败了
所以,我们希望remove方法不是通过地址删除,而是根据内容删除,因此,要重写equals方法

.
删除成功

contains方法也依赖于equals方法,没有重写也会出错
集合体系介绍、collection的使用--java进阶day09的更多相关文章
- 【转】线程池体系介绍及从阿里Java开发手册学习线程池的正确创建方法
jdk1.7中java.util.concurrent.Executor线程池体系介绍 java.util.concurrent.Executor : 负责线程的使用与调度的根接口 |–Execut ...
- Java进阶 -- 文章汇总
文章汇总 Java集合源码 -- Collection框架概述 Java集合源码 -- Map映射和Set集合 Java集合源码 -- List列表 String和StringBuffer 内部类 j ...
- Java集合中List,Set以及Map等集合体系详解
转载请注明出处:Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有H ...
- Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)
Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...
- Java.数据结构.集合体系详解
I. 第一部分:常见数据结构 首先简单说下数据结构. 什么是数据结构?数据结构就是组织数据的方式. 常见的数据结构:栈,堆,树,图,数组,队列,链表. 这里主要介绍与java集合体系相关的栈.数组和链 ...
- Java集合框架之Collection接口
Java是一门面向对象的语言,那么我们写程序的时候最经常操作的便是对象了,为此,Java提供了一些专门用来处理对象的类库,这些类库的集合我们称之为集合框架.Java集合工具包位于Java.util包下 ...
- Java 集合系列 02 Collection架构
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- 浅谈Java的集合体系
集合体系框架图 集合接口 Java集合类库将接口(interface)与实现(implementation)分离,如上图,Set是一个集合接口,而HashSet与TreeSet都是实现了Set接口的子 ...
- JAVA提高九:集合体系
在经过了前面的JDK6.0新特性的学习后,将进一步深入学习JDK,因为集合的重要性,因此从集合开始入手分析: 一.集合概况 Java是一种面向对象语言,如果我们要针对多个对象进行操作,那么首先必要将多 ...
- Javase之集合体系之(1)集合顶层类Collection与其迭代器知识
集合体系之集合顶层类Collection与其迭代器知识 集合的由来:Java是一门面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,就必须把多个对象进行存储,而要存 ...
随机推荐
- TagHelper中获取当前Url
在自定义TagHelper时,我们无法通过TagHelperContext 和 TagHelperOutput 获取到当前路由的信息,我们需要添加注入ViewContext [HtmlAttribut ...
- python封装https请求
1 import http.client 2 import json 3 4 class HTTPS_Connection: 5 6 def __init__(self, res_type, body ...
- Family of Solution Sets
欢迎投歌词!评论告诉我歌曲链接和词就好啦-大概四五天一更? Solution Set - "卷起击碎定论的漩涡" \(\to\) <夏虫> Solution Set ...
- 第六章 ArrayBlockingQueue源码解析
1.对于ArrayBlockingQueue需要掌握以下几点 创建 入队(添加元素) 出队(删除元素) 2.创建 public ArrayBlockingQueue(int capacity, boo ...
- ZUC-S盒输入输出测试
问题 实现以二进制.十进制.十六进制的形式输入,经过S盒,输出十六进制 输入: 1.二进制:10001010010011110000011110111101 2.十进制:2320435133 3.十六 ...
- 【译】我们最喜欢的2024年的 Visual Studio 新功能
去年,Visual Studio 团队发布了许多新的面向开发人员的改进和 AI 集成,其中许多直接来自您在开发者社区的反馈.在这篇文章中,我们将重点介绍2024年团队最喜欢的功能,这些功能可以提高生产 ...
- [记录点滴]Spring Boot Admin源码分析笔记
[记录点滴]Spring Boot Admin源码分析笔记 0x00 摘要 本文是过去使用Spring Boot Admin时候分析源码的笔记.虽然比较简单,但是也可以看出Spring Boot Ad ...
- Q:Tomcat使用的jdk版本而不依赖环境变量
1)在tomcat中显式配置-JVM启动使用内存大小 解决:vim打开tomcat目录下的bin/catalina.sh文件,在文件最上部配置JAVA_OPTS属性. windows下在catalin ...
- DeepSeek-R1本地部署如何选择适合你的版本?看这里
DeepSeek-R1本地部署:选择最适合你的版本,轻松搞定! 关于本地部署DeepSeek-R1前期知识 如果你正在考虑将DeepSeek-R1部署到本地服务器上,了解每种类型的硬件需求是非常重要的 ...
- Docker容器访问挂载文件权限问题
问题描述 在使用docker-compose部署项目时,yaml文件如下: version: '3' services: purchasing-contract-consumer: image: my ...