《Java 学习笔记》第 13 章 - 对象容器(未完)

在程序运行的过程中,很多时候需要将对象暂时存储在一个容器中统一管理,之后需要时再将对象取出。

1、Collection 类

Collection 结构可持有各自独立的对象。在 J2SE 中,Collection 包括了 List 与 Set,List 是实现 java.util.List 接口的相关类,可依对象被放置至容器中的顺序来排列对象。Set 是实现 java.util.Set 接口的相关类,不接受重复对象,并可拥有自己的一套排列规则。

1)简介 List 接口

java.util.ArrayList 类实现了 java.util.List 接口,所以要先认识一下 List 接口。 List 接口是 java.util.Collection 接口的子接口。而 Collection 接口则是 java.lang.Iterator 的子接口。 Iterable 接口要实现一个 iterator() 方法。

Iterable 接口要求实现它的类返回一个实现 java.util.Iterator 接口的对象。事实上在 J2SE 的 API 中找不到任何实现 Iterator 的类,因为 Iterator 会根据实际的容器数据结构来迭代元素,而容器的数据结构实现方式对外界是隐藏的,使用者不用知道这个结构,只需要知道 Iterator 的实现方法,就可以取出元素。Iterator 接口的定义如下:

    package java.util;

    public interface Iterator<E>{

        boolean hasNext();

        E next();

        void remove();

    }

Collection 接口继承了 Iterator 接口,定义了加入元素、删除元素、元素长度等方法。

Collection 在删除元素及取得元素上的定义比较通用,List 接口由增加了根据索引取得对象的方法,这说明了 List 数据结构的特性,每个加入 List 中的元素是循序加入的,并可指定索引来存取元素。

List 数据结构的特性是,每个加入 List 中的元素是循序加入的,并可指定索引来存取元素。List 可以使用数组(Array)或是链接串行(LinkedList)来实现这个特性,前者在 J2SE 中的实现是 java.util.ArrayList,后者就是 java.util.LinkedList。对于循序加入与存取,使用 ArrayList 的效率比较好,对于经常变动的元素排列顺序的需求,使用 LinkedList 会比较好。

2)ArrayList

3)LinkedList

猜你喜欢

转载自www.cnblogs.com/Tom-1103/p/12150170.html