1、要求
自定义一个可以存放指定数据的容器
2、案例介绍
要求自定义一个容器,此容器可以存放指定类型的数据。通过泛型来实现
3、案例设计
1、设计定义一个泛型类
2、设置add方法来给容器添加数据
3、设置get方法获取容器中指定位置的数据
4、设置size方法获取容器中数据的多少
5、要求容量超过要自动扩容
package com.note.generic7;
import java.util.Arrays;
public class MyContainer {
public static void main(String[] args) {
List<String> list = new List<String>();
for(int i=0;i<105;i++) {
list.add("data" + (i+1) );
}
for(int i=0;i<list.getSize();i++) {
System.out.println("--" +list.getData(i));
}
}
}
interface IContainer<T>{
public void add(T t);
public T getData(int index);
public int getSize();
}
class List<T> implements IContainer<T>{
//这样写是错误的~数组不能这样定义
//private T []t = new T[10];
private Object []mData = new Object[10];
private int mSize;
@Override
public void add(T t) {
ensureCapacity(mSize);
mData[mSize++] = t;
}
@SuppressWarnings("unchecked")
@Override
public T getData(int index) {
return (T) mData[index];
}
@Override
public int getSize() {
return mSize;
}
private void ensureCapacity(int capacity) {
if(capacity >= mData.length) {
mData = Arrays.copyOf(mData, mData.length+mData.length/2);
}
}
}