什么是集合?
一种操作方便的对象容器,可以用于存储管理多个对象(存储并管理多个对象的一种工具),替换数组.
文章图片
Collection集合体系分为两个子接口: (List和Set)
根接口Collection:
(1) 特点:存储多个Object对象
(2) 方法:
a. boolean add(Object obj):
往集合中添加一个对象,添加成功-true;不成功-false
b. void clear():清空集合
c. boolean contains(Object o):
判断集合中是否包含某个对象,包含-true;不包含-false
子接口List:
(1) 特点:存储多个Object对象,有序、 有下标、元素可以重复,
下标的范围:0~size-1
(2) 常见的方法:部分继承于父接口 Collection
a. boolean add(Object obj): 往集合中添加一个对象;
添加成功-true;
不成功-false
b. Object get(int index):通过下标获取对象
注意:如果指定下标超过下标范围,则运行报错,错误信息为:
Java.lang.IndexOutOfBoundsExcept ion(下标越界)
(3) 实现类:ArrayList
(4) 集合遍历:
a. 下标遍历:
for(int i =0;
i<集合名.size();
i++){
// 通过下标获取对应的元素
System.out.println(list.get(i));
}
b. forEach遍历:
for(数据类型 变量名:要遍历的集合名){
// 直接通过变量名操作集合元素
}
注意:()中的数据类型取决于集合的泛型类型
子接口Set:
(1) 特点:存储任意类型的对象,无序、无下标、元素内容不可以重复
(2) 方法:继承于父接口Collection
(3) 实现类:HashSet
注意:如果自定义类型的对象存储在 HashSet集合中;
为了保证元素内容不重复,存储对象对应类中需要覆盖:
HashCode 和equals方法
(4) 遍历方式:forEach遍历
【java|Java中的集合体系之Collection【List、Set】和Map集合体系? (十一)】Map体系:
Map的特点:
(1) 存储键值对(key-value),一个键值对对应Map集合的一个元素
(2) 键:无序、无下标、元素不允许重复(唯一)
(3) 值:无序、无下标、元素内容允许重复
Map的方法:
(1) V put(K key,V value):
往Map集合中添加一个键值对,如果添加的key是第一次出现,则成功添加;
如果key在map中已存在,则用新的value覆盖原来的value值
put两个含义:
a. 添加
b. 修改:利用key修饰value
(2) int size():获取Map集合中键值对的个数
(3) V get(K key):根据键获取对应的值
(4) boolean containsKey(K key):
判断当前map中是否包含某个键,包含- true;不包含-false
(5) boolean containsValue(V value):
判断当前map中是否包含某个值,包含-true,不包含-false
(6) V remove(K key):根据键删除map中对应的键值对
Map的实现类: (HashMap)
Map集合遍历:
(1) 键遍历:
a. 获取所有的键:
Set keys = map.keySet();
b. 通过遍历set集合获取每一个键:
for(K key:keys){
// 通过 键获取对应的值
V value = https://www.it610.com/article/map.get(key);
// 通过 key和value操作
}
(2) 键值对遍历:
a. 获取所有的键值对:
Entry Set>
kvs= map.entrySet();
b. 通过遍历的set获取每一个键值对:
for(Map.Entry kv:kvs){
// 分别获取键和值
K key = kv.getKey();
V value = https://www.it610.com/article/kv.getValue();
// 通过key和value操作
}
推荐阅读
- Spring相关|Spring Boot 面试题 汇总 --- 《绝绝子》
- java|Java集合【List、Set、Map】案例整合以及集合实现类的区别()
- 牛客网后端项目实战|牛客网后端项目实战(二十五)(Redis入门)
- 程序员|Java详解(如何实现一个-redis-缓存服务,牛客视频面试)
- java|JAVA面试题 --- Redis篇(一)
- 手撕Gateway源码,今日撕工作流程、负载均衡源码
- java|SpringBoot+Redis搜索栏热搜过滤
- spring|Spring Boot + Redis 去除搜索栏热搜、不雅文字过滤功能
- 算法|SpringBoot+Redis 实现一个微博热搜!