文章目录

  • 一、集合框架
    • 1、接口
    • 2、实现类
    • 3、集合类图
    • 4、集合框架的好处
  • 二、重要接口
    • 1、Collection
    • 2、List
    • 3、Set
    • 4、Queue
    • 5、Map
    • 5、迭代器接口

一、集合框架

Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes

1、接口

Java Collections Framework 接口提供抽象数据类型来表示集合。

java.util.Collection是集合框架的根接口。它位于集合框架层次结构的顶部。它包含一些重要的方法,例如每个 Collection 类都必须实现的 size()、iterator()、add()、remove()、clear()
其他一些重要的接口是 java.util.List、java.util.Set、java.util.Queue、java.util.Map。Map 是唯一不继承自 Collection 接口的接口,但它是 Collections 框架的一部分。所有集合框架接口都存在于 java.util 包中。

2、实现类

Java Collections 框架为核心集合接口提供了实现类。我们可以使用它们在 Java 程序中创建不同类型的集合。

一些重要的集合类是 ArrayList、LinkedList、HashMap、TreeMap、HashSet、TreeSet。这些类解决了我们大部分的编程需求,但是如果我们需要一些特殊的集合类,我们可以扩展它们来创建我们的自定义集合类。

Java 1.5 提出了线程安全的集合类,允许我们在迭代它们时修改集合。其中一些是CopyOnWriteArrayList、ConcurrentHashMap、CopyOnWriteArraySet。这些类在 java.util.concurrent 包中。

所有集合类都存在于 java.utiljava.util.concurrent 包中。

3、集合类图

4、集合框架的好处

  • 减少开发工作量——它带有几乎所有常见类型的集合和有用的方法来迭代和操作数据。所以我们可以更专注于业务逻辑,而不是设计我们的集合 API。
  • 更好的质量——使用经过充分测试的核心集合类可以提高我们的程序质量,而不是使用任何自己开发的数据结构。
  • 可重用性和互操作性
  • 减少维护工作,因为每个人都知道 Collection API 类。

二、重要接口

1、Collection

public interface Collection<E> extends Iterable<E> {}

Collecton继承另一个接口Iterable,由下图可以看出Collection实现了以下方法。

2、List

List集合类中的元素有序(添加顺序和取出顺序一致),可重复。
List集合中的每个元素有其对应的顺序索引

ArrayList:由数组来实现数据的存储,可以随机访问

Vector:和ArrayList类似,它是线程安全的

LinkedList:双向链表实现,可以快速在链表中间插入和删除元素。

3、Set

Set 是一个不能包含重复元素的集合。

TreeSet:基于红黑树实现,支持有序性操作。但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。

HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作。使用 Iterator 遍历 HashSet 得到的结果是不确定的。

LinkedHashSet:具有 HashSet 的查找效率,并且内部使用双向链表维护元素的插入顺序。

4、Queue

Queue是一个集合,用于在处理之前保存多个元素。
Queue 还提供了额外的插入、提取和检查操作。

LinkedList:可以用它来实现双向队列。

PriorityQueue:基于堆结构实现,可以用它来实现优先队列。

5、Map

Map是一个将键映射到值的对象。映射不能包含重复的键:每个键最多可以映射到一个值。

TreeMap:基于红黑树实现。

HashMap:基于哈希表实现。

HashTable:和 HashMap 类似,但它是线程安全的,这意味着同一时刻多个线程同时写入 HashTable 不会导致数据不一致。它是遗留类,不应该去使用它,而是使用 ConcurrentHashMap 来支持线程安全,ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁。

LinkedHashMap:使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序。

5、迭代器接口

① Iterator()方法

Iterator 接口提供了迭代 Collection 元素的方法。我们可以使用iterator()方法获取迭代器的实例。

public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("xiaoming");list.add("xiaohong");list.add("xiaoli");list.add("xiaosi");// 通过Iterator 迭代Iterator io = list.iterator();while(io.hasNext()) {System.out.println(io.next());}}

在List接口中实现了iterator方法。该方法类型为Iterator接口。
hasNext():判断是否还有下一个元素,返回boolean类型
next():将下一个元素返回

② foreach

增强for,底层仍然是迭代器,简化版的Iterator
基本语法

for(元素类型 元素名 : 集合名或数组名) {访问元素
}
public static void main(String[] args) {List list = new ArrayList();list.add("xiaoming");list.add("xiaohong");list.add("xiaoli");list.add("xiaosi");// 通过增强for循环遍历for (Object x : list) {System.out.println(x);}}

参考资料
JournalDev Java教程

Java集合框架和重要接口、类相关推荐

  1. Java集合框架之四大接口、常用实现类,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  2. JavaSE入门学习34:Java集合框架之Collection接口、子接口及其实现类

    一Collection接口 Collection接口定义了存取一组对象的方法,其子接口Set.List和Queen分别定义了存储方式. 使用Collection接口需要注意: 1Collection接 ...

  3. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  4. Java集合查找Map,Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  5. 5.0 java集合框架中的接口collection属于_JAVA集合框架 - osc_cyo2dovg的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.为什么要使用集合 单个数据,可以用变量保存: 多个数据,可以用数组保存: 但是对于存储多个数据且数量不确定的情况,使用集合: 二.集合和数组的区别 (1)数组: 1.只能保存同一种类型的数据: 2 ...

  6. Java集合框架:Collections工具类

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  7. 2014年4月5日 java集合框架总结2--List接口及其子类

    List接口 Collection接口的子接口,可以使用Collection中全部方法. 有序集合,元素有索引,元素可以重复 List:特有的常见方法:有一个共性特点就是都可以操作角标. 1,添加   ...

  8. Java集合框架及基本接口

    文章目录 Collection接口及迭代器 泛型方法的使用 集合基本接口和实现 List ArrayList LinkedList ListIterator接口和Iterable接口的区别 Set H ...

  9. (Java集合框架)List接口

    List接口介绍 java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合.在List集合中允许出现重复的元素,所 ...

  10. Java集合框架:Arrays工具类

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

最新文章

  1. ubuntu samba 安装
  2. 小白学数据分析-----付费渗透率再研究
  3. JDBC编程的事务处理
  4. CachedNetworkImage 图片缓存
  5. 网络编程学习笔记(socketpair函数)
  6. CRC校验原理及STM32 IAP在线升级程序
  7. PIXI.JS兼容微信小游戏
  8. 3. AJAX 请求与响应
  9. jQuery--checkbox全选/取消全选 及checkbox遍历
  10. 机器人学基础–左乘和右乘
  11. ie8升级到ie11
  12. 微信小程序——定位(根据经纬度算距离)
  13. linux 查看文件夹大小
  14. 软件研发中也有5S 管理?
  15. 2535: [Noi2010]Plane 航空管制2
  16. 【干货】1.5W+字的全链路前端性能优化送给你
  17. How to design an FPGA from scratch-1_FPGA_8_24
  18. 38、EST序列拼接流程
  19. 为什么那么多的企业选择上云,上云有哪些优势?
  20. 什么是RPC(Remote Procedure Call)

热门文章

  1. 全球压缩毛巾行业调研及趋势分析报告
  2. 帆软连接数据库的步骤
  3. GsonFormat的使用 (转)
  4. Android Studio 4.2没有GsonFormat解决办法
  5. 迅捷pdf在线转换html,迅捷pdf在线转换成word免费版在线版
  6. 基于NumPy实现随机梯度下降算法
  7. jupyter notebook 软件安装及使用
  8. uni-app 官网教程
  9. Java基础知识点面试手册
  10. 单片机c语言仿真,单片机c语言教程:C51表达式语句及仿真器