Java中集合框架的整体体系如下:
![](https://img.kancloud.cn/99/7d/997d37e1a822a3bddede70f66c21cbf3_1535x649.png)
【来源:[https://www.processon.com/view/616d69c3e0b34d7c7dba91f7?fromnew=1](https://www.processon.com/view/616d69c3e0b34d7c7dba91f7?fromnew=1)】
可以大致分为两个部分,一个是单个数据的存储结构,其最顶层接口为Collection;一个是键值对的存储结构,其最顶层的接口是Map。
## Collection
Collection是Java集合框架中所有线性集合的接口,这里的线性集合包括List、Queue、Set。其定义了与线性集合相关的常见的操作。
~~~
public interface Collection<E> extends Iterable<E> {
// 添加元素
boolean add(E e);
// 批量添加元素
boolean addAll(Collection<? extends E> c);
// 移除元素
boolean remove(Object o);
// 批量移除元素
boolean removeAll(Collection<?> c);
// 获取集合的大小
int size();
// 集合是否为空
boolean isEmpty();
// 是否包含某个元素
boolean contains(Object o);
// 清空集合
void clear();
}
~~~
## Map
Map结构用于存储键值对,是一个接口,其常见的实现类有HashMap、Hashtable、TreeMap等。在该接口中定义的统一操作有:
1. 添加元素:
~~~
// 用于键值对的绑定,当键不存在是返回null,当键存在是返回旧值。
V put(K key, V value);
~~~
2. 判断
~~~
// 是否包含键
boolean containsKey(Object key);
// 是否包含值
boolean containsValue(Object value);
// 是否为空
boolean isEmpty();
// 判断两个map是否相同
boolean equals(Object o);
~~~
3. 获取元素
~~~
// 根据键获取value值,不存在则返回null
V get(Object key);
// 获取所有键
Set<K> keySet();
// 获取所有的值
Collection<V> values();
// 获取所有键值对
Set<Map.Entry<K,V>> entrySet();
// 大小
int size();
~~~
4. 移除元素
~~~
// 移除某个键
V remove(object key);
// 清空map的内容
void clear();
~~~
- 第一章 Java基础
- ThreadLocal
- Java异常体系
- Java集合框架
- List接口及其实现类
- Queue接口及其实现类
- Set接口及其实现类
- Map接口及其实现类
- JDK1.8新特性
- Lambda表达式
- 常用函数式接口
- stream流
- 面试
- 第二章 Java虚拟机
- 第一节、运行时数据区
- 第二节、垃圾回收
- 第三节、类加载机制
- 第四节、类文件与字节码指令
- 第五节、语法糖
- 第六节、运行期优化
- 面试常见问题
- 第三章 并发编程
- 第一节、Java中的线程
- 第二节、Java中的锁
- 第三节、线程池
- 第四节、并发工具类
- AQS
- 第四章 网络编程
- WebSocket协议
- Netty
- Netty入门
- Netty-自定义协议
- 面试题
- IO
- 网络IO模型
- 第五章 操作系统
- IO
- 文件系统的相关概念
- Java几种文件读写方式性能对比
- Socket
- 内存管理
- 进程、线程、协程
- IO模型的演化过程
- 第六章 计算机网络
- 第七章 消息队列
- RabbitMQ
- 第八章 开发框架
- Spring
- Spring事务
- Spring MVC
- Spring Boot
- Mybatis
- Mybatis-Plus
- Shiro
- 第九章 数据库
- Mysql
- Mysql中的索引
- Mysql中的锁
- 面试常见问题
- Mysql中的日志
- InnoDB存储引擎
- 事务
- Redis
- redis的数据类型
- redis数据结构
- Redis主从复制
- 哨兵模式
- 面试题
- Spring Boot整合Lettuce+Redisson实现布隆过滤器
- 集群
- Redis网络IO模型
- 第十章 设计模式
- 设计模式-七大原则
- 设计模式-单例模式
- 设计模式-备忘录模式
- 设计模式-原型模式
- 设计模式-责任链模式
- 设计模式-过滤模式
- 设计模式-观察者模式
- 设计模式-工厂方法模式
- 设计模式-抽象工厂模式
- 设计模式-代理模式
- 第十一章 后端开发常用工具、库
- Docker
- Docker安装Mysql
- 第十二章 中间件
- ZooKeeper