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); } } }