import java.util.HashMap; import java.util.Map; public class MyList<T> { public int listSize = 0; private Map<Integer,T> mapArr = null; public MyList(){ mapArr = new HashMap<Integer,T>(); } //添加数据 public void addObj(T obj){ mapArr.put(listSize, obj); listSize++; } //取得数据 public <T> T get(int i){ T obj ; if(mapArr.get(i) != null){ obj = (T) mapArr.get(i); return obj; } return null; } //索引删除数据 public void removeObj(int i){ if(mapArr.get(i) != null){ mapArr.remove(i); } for(int idx = 0; idx < listSize - i - 1; idx ++){ mapArr.put(i + idx, mapArr.get(i + idx + 1)); } listSize --; } //匹配删除 public void removeObj(T obj){ int cyIdx = 0; for(int i = 0; i < listSize; i ++){ if(obj.equals(mapArr.get(i))){ mapArr.remove(i); cyIdx = i; break; } } for(int idx = 0; idx < listSize - cyIdx - 1; idx ++){ mapArr.put(cyIdx + idx, mapArr.get(cyIdx + idx + 1)); } listSize --; } // 修改制定数据 public void updateObj(int i,T obj){ mapArr.put(i, obj); } } 对于安全性,可能发生的异常未进行处理。只是简单通过HashMap的键/值的添加,删除和读取,实现类似ArrayList的索引功能。 在编程中寻找快乐,在快乐中自由编程!!!