JavaSE入门学习33:Java集合框架概述

一集合框架

(1)集合的概念

现实生活中的集合:很多的事物凑在一起。

数学中的集合:具有共同属性的事物的总体。

Java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象。

(2)集合框架的概念

有了集合的概念,什么是集合框架呢?集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何

集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。

1接口:即表示集合的抽象数据类型。接口提供了让我们对集合中所表示的内容进行单独操作的可能。接口允许

集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。

2实现(类):也就是集合框架中接口的具体实现。实际它们就是那些可复用的数据结构。

3算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些

算法通常是多态的,因为相同的方法可以在同一个接口被多个类实现时有不同的表现。事实上,算法是可复用的函

数。如果你学过C++,那C++中的标准模版库(STL)你应该不陌生,它是众所周知的集合框架的绝好例子。

集合框架被设计成要满足以下几个目标:

1该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。

2该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。

3对一个集合的扩展和适应必须是简单的。

(3)Java集合框架的概念

在Java语言中,设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。除了集合,

Java集合框架也定义了几个Map接口和类。Map里存储的是键/值对。尽管Map不是collections,但是它们完全整合在

集合中。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection Framework)。

Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应

用就可以了,这样就大大提高了编程效率。

为此,整个集合框架就围绕一组标准接口而设计。你可以直接使用这些接口的标准实现,诸如: LinkedList、

HashSet和HashMap等,除此之外你也可以通过这些接口实现自己的集合。

(4)Java集合框架的作用

1在类的内部,对数据进行组织。

2简单而快速的搜素大数量的条目。

3有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素。

4有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任

意类型。

(5)为何选择集合而不是数组——与数组的对比

1数组的长度固定,集合长度可变。

2数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象。

二Java集合框架体系结构

Java提供了一个丰富的集合框架,这个集合框架包含了许多接口、抽象类和实现类。这些接口和类提供了丰富的

功能,能够满足基本的聚合需求。下图就是这个框架的整体结构图:

Java集合框架图解释:

1集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。

2抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。

3实现类:8个实现类(实线表示),对接口的具体实现。

我们主要学习的接口和实现类,也就是简化以后的Java集合框架图:

我们主要学习三大类接口:

1.Collection是一个接口,它包含了集合的基本操作和属性。Collection包含了List和Set两大分支。

(1) List是一个有序的队列,每一个元素都有它的索引,第一个元素的索引值是0,List的实现类有ArrayList,

LinkedList,Vector和Stack。

(2) Set是一个不允许有重复元素的集合。Set的实现类有HashSet和TreeSet。HashSet依赖于HashMap,它实际

上是通过HashMap实现的;TreeSet依赖于TreeMap,它实际上是通过TreeMap实现的。

2. Map是一个映射接口,即key-value键值对。Map中的每一个元素包含一个key和key对应的value。

(1) AbstractMap是个抽象类,它实现了Map接口中的大部分API,而HashMap,TreeMap,WeakHashMap都是

继承与AbstractMap。

(2) HashTable虽然继承与Dictionary,但是它实现了Map接口。

3. Iterator是遍历集合的工具,我们通常使用Iterator迭代器来遍历集合。Collection依赖于Iterator是因为

Collection的实现类都要实现iterator()方法,返回一个Iterator对象。ListIterator是专门为遍历List而存在的。

三集合框架

(1)集合接口

集合框架定义了一些接口,下表提供了每个接口的概述:

(2)集合类

Java提供了一套实现了Collection接口的标准集合类。其中一些是具体类,这些类可以直接拿来使用,而另外一

些是抽象类,提供了接口的部分实现。标准集合类汇总于下表:

(3)集合算法

集合框架定义了几种算法,可用于集合和映射。这些算法被定义为集合类的静态方法。在尝试比较不兼容的类型

时,一些方法能够抛出ClassCastException异常。当试图修改一个不可修改的集合时,抛出

UnsupportedOperationException异常。

集合定义三个静态的变量:EMPTY_SET EMPTY_LIST,EMPTY_MAP的。这些变量都不可改变。

(4)迭代器

通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。做到这一点最简单的方法是采用

一个迭代器,它是一个对象,实现了Iterator接口或ListIterator接口。

迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator继承了Iterator,以允许双向遍历列表和修改元

素。这里通过实例列出Iterator和listIterator接口提供的所有方法。

(5)比较器

TreeSet和TreeMap的按照排序顺序来存储元素. 然而,这是通过比较器来精确定义按照什么样的排序顺序。这个

接口可以让我们以不同的方式来排序一个集合。

四总结

1Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。

2集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。

3集合框架的类和接口均在java.util包中。

4Java集合类库中将接口(interface)与实现(implementation)分离。

5Java平台提供了一个全新的集合框架。Java集合框架主要由一组用来操作对象的接口组成。不同接口描述一组

不同数据类型。

在后面的文章我们会详细的介绍Java集合框架中的各种接口以及实现类,并且会做出一些实例来深入学习集合框

架,我所参考的例子是慕课网的模拟学生选课功能。有兴趣的可以看一下:http://www.imooc.com/video/2415。

时间: 2024-12-11 15:51:29

JavaSE入门学习33:Java集合框架概述的相关文章

java 集合框架(一)

Java 集合框架概述 Java集合的概念 Java集合类:是一个工具类,就像容器,存储任意数量的具有共同属性的对象. Java集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有些集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或者删除有关元素: 4.有些集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型. 数组和集合对比 1.数组的长度固定,集合的长度可变 2.数组只能通过下标访问元素,

详解Java集合框架,让你全面掌握!

一.Java集合框架概述 集合可以看作是一种容器,用来存储对象信息.所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.concurrent包下. 数组与集合的区别如下: 1)数组长度不可变化而且无法保存具有映射关系的数据:集合类用于保存数量不确定的数据,以及保存具有映射关系的数据. 2)数组元素既可以是基本类型的值,也可以是对象:集合只能保存对象. Java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:Li

Java集合框架详解(全)

一.Java集合框架概述 集合可以看作是一种容器,用来存储对象信息.所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.concurrent包下. 数组与集合的区别如下: 1)数组长度不可变化而且无法保存具有映射关系的数据:集合类用于保存数量不确定的数据,以及保存具有映射关系的数据. 2)数组元素既可以是基本类型的值,也可以是对象:集合只能保存对象. Java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:Li

JavaSE入门学习40:Java集合框架之泛型

一Java泛型 JDK 4.0以前装入集合的类型不明确,也就是说集合中的元素,可以是任意类型的对象(对象的引用),如果把某个 对象放入集合,则会忽略它的类型,而把它当做Object处理,从而失去自己的实际类型.从集合中取出时往往需要转 型,效率低,容易产生错误.JDK 5.0泛型指的是规定了某个集合只可以存放特定类型的对象,会在编译期间进行类 型检查,也可以直接按指定类型获取集合元素. 如果我们只写一个排序方法,就能够对整型数组.字符串数组甚至支持排序的任何类型的数组进行排序,这该多 好啊.Ja

Java集合框架学习笔记

本文为学习笔记,学习课程为慕课网Java入门第三季中的集合框架部分,若需要研究文中的代码,可前往下载.http://www.imooc.com/learn/110 1. List(Collection子接口) 1.1 实例化 List list = new ArrayList(); ??List是一个接口,不可直接实例化,通常情况下ArrayList实现类进行实例化. 1.2 增 1.2.1 add(obj) ??直接将obj对象加入List末位. 1.2.2 add(i, obj) ??将ob

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

JavaSE入门学习24:Java面向对象补充

一Java中的Object类 Object类是所有Java类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认 继承Object类. public class Person{ // } //等价于 public class Person extends Object{ // } Object类中的方法,适合所有子类. 1)toString()方法 在Object类中定义有public String toString()方法,其返回值是String类型,描述当前对

黑马程序员——JAVA集合框架学习总结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- www.itheima.com 要学好java的集合框架,必须掌握此图: Java集合框架很全面,从大的来说.它包括两种类型: 1.一种是以collection为根接口的集合. 2.另一种是由map为根接口的<key,value>的“图”. 而collection之下的set接口和list接口又有不同: 1.Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制.

JavaSE入门学习7:Java基础语法之语句(下)

继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for. (5)Java循环语句之while 语法: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 运行