Java中的泛型是一種支持多種類型無障礙操作的強大機制。泛型接口可以定義和實現一種通用的數據類型,可以根據實際需要指定具體的數據類型。
public interface List<T> { void add(T t); T get(int index); }
在這個例子中,我們定義了一個List接口并指定了泛型類型T。該接口有兩個方法,add用于添加元素,get用于獲取指定index位置的元素。使用泛型接口實現該接口時需指定T的具體類型,例如:
public class MyList<T> implements List<T>{ private T[] data; private int size; public MyList(int capacity) { data = (T[])new Object[capacity]; size = 0; } public void add(T t) { if (size == data.length) { throw new IndexOutOfBoundsException(); } data[size++] = t; } public T get(int index) { if (index< 0 || index >= size) { throw new IndexOutOfBoundsException(); } return data[index]; } }
在這個實現中,我們使用泛型類MyList來實現List接口。MyList對象可以存儲任意類型的元素,只需在創建MyList對象時指定具體的類型。該實現使用數組來存儲元素,由于Java中的泛型數組創建存在限制,需要通過轉換類型的方式來實現。
使用泛型接口實現通用數據結構可以大大提高代碼的復用性和擴展性,特別是在涉及多種數據類型的情況下有很大的優勢。