java 集合相关 The Collections Framework

这里选择的是JDK 1.6版本的源码,为的是暂时不去纠结一些JAVA的新特性,将关注点放在集合本身。

一 . 整体了解

   有时需要对一组对象进行各种操作。

针对不同的应用场景,需要选择合适的数据结构(比如数组,链表,树),以及一些数据内容本身的特性 
(比如 可重复,不可重复),因为很多内容是重复的,所以官方提供了这个集合框架 

以下是官方给出的说明

The Collections Framework 

集合框架

集合框架是用于表示和操作集合的统一体系结构,使它们能够独立于其表示的细节而被操纵。它减少了编程工作,同时提高了性能 它支持无关API之间的互操作性,减少设计和学习新API的工作量,并促进软件重用。该框架基于十多个集合接口。它包括这些接口和算法的实现来操纵它们。

java提供了两种类型的容器

  • Collection     存储某种元素的集合
  • map             存储键/值对
主要有以下几种

  • Set  用于存储一组不重复的元素
  • List  用于存储一组有序元素
  • Stack   栈    存储后进先出的对象
  • Queue  队列  用于存储先进先出的对象
  • Priority  Queue 用于存储按照优先级顺序处理的对象

一些通用的特性在接口中定义,实现在具体类中


一. interface Iterable<T>  这里只定义了一个接口,返回一个迭代器对象
package java.lang;

import java.util.Iterator;

public interface Iterable<T> {
    Iterator<T> iterator();
}
二 . interface Collection<E>
官方说明:
Collection 层次结构 中的根接口。Collection 表示一组对象,
这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。
一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:
它提供更具体的子接口(如 SetList)实现。

package java.util;

public interface Collection<E> extends Iterable<E> {
     //返回元素个数
    int size();
         //是否为空
    boolean isEmpty();
          //是否包含某个元素
    boolean contains(Object var1);
     
           //返回一个迭代器对象
    Iterator<E> iterator();
      //返回此collection 的数组
    Object[] toArray();
           
    <T> T[] toArray(T[] var1);
          //增加
    boolean add(E var1);
       //删除
    boolean remove(Object var1);
         //是否包含另一个 collection的所有元素
    boolean containsAll(Collection<?> var1);
          
    boolean addAll(Collection<? extends E> var1);

    boolean removeAll(Collection<?> var1);
         //仅保留此 collection 中那些也包含在指定 collection 的元素
    boolean retainAll(Collection<?> var1);
       //清除
    void clear();
         
    boolean equals(Object var1);

    int hashCode();
}

三. AbstractCollection<E>

官方说明:

此类提供 Collection 接口的骨干实现,以最大限度地减少了实现此接口所需的工作。

要实现一个不可修改的 collection,编程人员只需扩展此类,并提供 iteratorsize 方法的实现。(iterator 方法返回的迭代器必须实现 hasNextnext。)

要实现可修改的 collection,编程人员必须另外重写此类的 add 方法(否则,会抛出 UnsupportedOperationException),iterator 方法返回的迭代器还必须另外实现其 remove 方法。

按照 Collection 接口规范中的建议,编程人员通常应提供一个 void (无参数)和 Collection 构造方法。

此类中每个非抽象方法的文档详细描述了其实现。如果要实现的 collection 允许更有效的实现,则可以重写这些方法中的每个方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值