![](https://img.kancloud.cn/2f/45/2f459861d963c59dddd56d7466da4381_643x611.png)
**1. Collection**
* Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素。
* Java 不提供直接继承自 Collection 的类,只提供继承的子接口,如 List 和 Set。
* Collection 接口存储<mark>一组不唯一,无序</mark>的对象。
**2. List**
* List 接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引来访问 List 中的元素,第一个元素的索引为 0,而且允许有相同的元素。
* List 接口存储<mark>一组不唯一,有序(插入顺序)</mark>的对象。
**3. Set**
* Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。
* Set 接口存储<mark>一组唯一,无序</mark>的对象。
**4. SortedSet**
* 继承于 Set 保存有序的集合。
* SortedSet 接口存储<mark>一组唯一,有序</mark>的对象。
**5. Map**
* Map 接口存储一组键值对象,提供 key(键)到 value(值)的映射。
**6. Map.Entry**
* 描述在一个Map中的一个元素(键/值对)。是一个 Map 的内部接口。
**7. SortedMap**
* 继承于 Map,使 Key 保持在升序排列。
**8. Enumeration**
* 这是一个传统的接口,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。
**9. Set和List的区别**
(1)Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
(2)Set 检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。实现类有HashSet,TreeSet。
(3)List 和数组类似,可以动态增长,根据实际存储的数据的长度自动增长 List 的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变。实现类有ArrayList,LinkedList,Vector。
- 网络通信
- 网络协议
- 端口和套接字
- TCP网络程序
- UDP网络程序
- 多线程聊天室
- 多线程
- 线程相关概念
- 线程实现方式
- 中断线程
- 线程生命周期
- 线程优先级
- 优先级规则
- 案例演示
- 线程同步机制
- 线程同步机制
- synchronized关键字
- ReentrantLock类
- Condition类
- 监视器概念
- volatile关键字
- final变量
- 死锁
- 线程局部变量
- 读/写锁
- 原子类
- 阻塞队列
- 工作规则
- 案例演示
- 常用阻塞队列
- 线程安全集合
- 高效的映射/集/队列
- 并发集视图
- 写数组的拷贝
- Arrays类的并行数组算法
- 同步包装器
- Callable与Future
- 执行器
- 线程池
- 预定执行
- 控制任务组
- Fork-Join框架
- 同步器
- 同步器
- 信号量
- CountDownLatch类
- CyclicBarrier类
- Exchanger类
- SynchronousQueue类
- 线程与Swing
- Swing与线程问题
- 两个原则
- Swing工作线程
- 单一线程规则
- 文件IO
- File类
- 文件输入输出
- ZIP压缩文件
- 集合
- 集合框架
- 集合接口
- 集合实现类
- 线程安全集合
- 集合算法
- 迭代器
- 集合排序
- JDBC
- JDBC是什么
- JDBC-ODBC桥
- JDBC驱动程序类型
- JDBC常用类与接口
- 数据库操作
- 连接数据库
- 增/删/改/查/预处理
- 事务
- 批处理
- commons-dbutils工具
- 安全问题
- Jedis
- 使用Jedis操作Redis数据库
- JSON转换
- 使用连接池
- 案例
- 单例破坏
- 单例定义
- 单例实现方式
- 懒汉式实现单例
- 饿汉式实现单例
- 单例破坏
- 类的单例破坏
- 枚举的单例破坏
- 克隆
- 克隆是什么
- 浅克隆
- 深克隆
- 注解
- 注解是什么
- 三大注解
- 内置注解
- 元注解
- 自定义注解
- NIO
- 相关概念
- BIO/NIO/AIO
- 多线程编程
- 线程同步
- 线程通信
- NIO
- NIO三大核心组件
- NIO网络编程
- NIO文件读写
- AIO
- Java8新特性
- Lambda表达式
- 方法引用
- 函数式接口
- 默认方法
- 什么是默认方法
- 默认方法语法格式
- 多个同名的默认方法问题
- 静态默认方法
- 默认方法实例
- Stream
- Stream是什么
- Stream示例
- Optional容器
- 新的日期时间API
- Base64
- SPI
- SPI是什么
- SPI与API的区别
- 常见场景
- 使用SPI需遵循的约定
- SPI使用步骤