Java 进阶之类集(一)

一、认识类集

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。

    类集的概念是从 JDK1.2 之后正式完善的一套开发架构,其基本的作用就是完成了一个动态的对象数组,里面的数据元素可以动态的增加(任意扩充

    对象数组中包含一组对象,但是对象数组使用的时候存在一个长度的限制,类集是专门解决这种限制的,使用类集可以方便的向数组中增加任意多个数据。对象数组的操作中基本上都保证对象类型的一致性,对于类集而言本身其内部的元素也应该保持一致,不管是何种类型的数据,所有的操作方式都应该是一样的。

    所有的类集操作都存放在 java.util 包中。

类集的特征:

        1)这种框架是高性能的

        2)框架必须允许不同类型的类集以相同的方式和高度互操作方式工作

        3)类集必须是容易扩展和修改的

二、类集框架主要接口

    下面表格列出了类集的主要接口,以下的接口都必须全部掌握,并且掌握各个接口的主要特点!

No  接口描述
1Collection 是存放一组单值的最大接口,所谓的单值是指集合中的每个元素都是一个对象。一般很少会直接使用此接口直接操作。
2List是 Collection 接口的子接口,也是最常用的接口,此接口对 Collection 接口进行了大量的扩充,里面的内容是允许重复的。
3Set是 Collection 接口的子类,没有对 Collection 接口进行扩充,里面不允许存放重复内容。
4MapMap 是存放一对值的最大接口, 即接口中的每一个元素都是一对,以 key → value 的形式保存。
5Iterator集合的输出接口,用于输出集合中的内容,只能进行从前到后的单向输出。
6ListIterator是 Iterator 的子接口,可以进行双向输出。
7Enumeration           是最早的输出接口,用于输出指定集合中的内容。
8SortedSet单值的排序接口,实现此接口的集合类,里面的内容是可以排序的,使用比较器排序。
9SortedMap存放一对值的排序接口,实现此接口的集合类,里面的内容按照 key 排序,使用比较器排序。
10Queue队列接口,此接口的子类可以实现队列操作。
11Map.EntryMap.Entry 的内部接口,每个 Map.Entry 对象都保存着一对 key → value 的内容,每个 Map 接口中都保存多个 Map.Entry 接口实例。

    各个接口的继承关系如下图所示:


三、Collection 接口

   介绍完了类集的概念以及其主要的一些接口,接下来就来介绍一下存放一组单值的最大接口:Collection 接口。

    概念:Collection 是最基本的集合接口,是保存单值集合的最大父接口一个 Collection 代表一组 Object,即 Collection 的元素(Elements)

    Collection 接口的定义(在 JDK 1.5 之后为 Collection 接口增加了泛型声明):

public interface Collection<E> extends Iterable<E>

    下面表格列出了 Collection 接口的方法定义:

No.方法类型描述
1public boolean add(E  o)普通向集合中插入对象
2public boolean addAll(Collection<? extends E>  c)普通将一个集合的内容插入进来
3public void clear()普通清除此集合中的所有元素
4public boolean contains(Object  o)普通判断某一个对象是否在集合中存在
5public boolean containsAll(Collection<?>  c)普通判断一组对象是否在集合中存在
6public boolean equals(Object  o)普通对象比较
7public int hashCode()普通哈希码
8public boolean isEmpty()普通集合是否为空
9public Iterator<E> iterator()普通为 Iterator 接口实例化
10public boolean remove(Object  o)普通删除指定对象
11public boolean removeAll(Collection<?>  c)普通删除一组对象
12public boolean retainAll(Collection<?>  c)普通保存指定内容
13public int size()普通求出集合的大小
14public Object[ ] toArray()普通将一个集合变为对象数组
15public <T> T[ ] toArray(T[ ]  a)普通指定好放回的对象数组类型

    Collection 接口的使用注意:在一般的开发中,往往很少去直接使用 Collection 接口进行开发,而基本上都是使用其子接口。子接口主要有:List、Set、Queue、SortedSet

    不使用 Collection 接口也是 Java 的逐步发展形成的,最早的时候实际上 Collection 接口被广泛应用,因为 EJB 技术的支持,在 EJC2x 中大量的使用了 Collection 接口,但是随着发展, Sun 公司开始将这些标准进行逐步的规范化,所以在 Sun 一个开源——宠物商店,基本上就不再使用 Collection 了,而是使用 List 或 Set,可以更加清楚的表示出操作的类型

四、Collection 子接口的定义

   Collection 接口虽然是集合的最大接口,但是如果直接使用 Collection 接口进行操作的话,则表示的操作意义不明确,所以在 Java 开发中已经不提倡直接使用 Collection 接口了,主要的子接口如下:

    1)List 接口:可以存放重复的内容。

    2)Set 接口:不能存放重复的内容,所有的重复内容是靠 hashCode() 和 equals() 两个方法区分的。

    3)Queue:队列接口。

    4)SortedSet 接口:可以对集合中的数据进行排序。

    (以上只是简单的描述了 Collection 的子接口,在后面的文章中将会进行逐个介绍

    希望此篇文章对大家在学习上有所帮助,若有不对之处也请指出!

参考文章:

https://www.cnblogs.com/jing99/p/7057245.html

http://blog.csdn.net/awq520tt1314/article/details/77291374

https://www.cnblogs.com/sjbas/p/5448459.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值