天天看點

Java集合架構——自定義實作

自定義實作

大多數時候,Java平台提供的資料集實作是夠用的。然而,處于某些特殊的需要,我們可能需要實作自己的資料集。

Java資料集提供了一系列資料集接口的抽象實作,用它們作為自定義資料集基類能極大的簡化我們的實作過程。

下面的例子就示範了如何自定義一個List接口的實作:

public static <T> List<T> asList(T[] a) {

    return new MyArrayList<T>(a);

}

private static class MyArrayList<T> extends AbstractList<T> {

    private final T[] a;

    MyArrayList(T[] array) {

        a = array;

    }

    public T get(int index) {

        return a[index];

    public T set(int index, T element) {

        T oldValue = a[index];

        a[index] = element;

        return oldValue;

    public int size() {

        return a.length;

如你所見,你隻需要實作構造函數及get和set方法,基類将幫你完成其它的事情。

Java提供的虛實作主要有如下幾種:

AbstractCollection

AbstractSet

AbstractList

AbstractSequentialList

AbstractQueue

AbstractMap

自定義實作主要分為如下幾步:

選擇一個合适的抽象實作作為基類。

實作基類中需要實作的相關接口

必要的測試