第一种实现:
import java.util.ArrayList;
import java.util.List;
public class CustomList {
private ArrayList<Integer> list = new ArrayList<Integer>();
private int capacity = 10;
private int count = capacity / 2;
public CustomList() {
}
public CustomList(int capacity) {
this.capacity = capacity;
count = capacity / 2;
}
public void add(Integer obj) {
if (list.size() >= capacity + count) {
List<Integer> listTmp = list.subList(0, count);
list.removeAll(listTmp);
}
list.add(obj);
}
public boolean contains(Integer obj) {
return list.contains(obj);
}
}
第二种实现:
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
public class CustomCollection {
private Map<Integer, Integer> map = new HashMap<Integer, Integer>();
private LinkedList<Integer> link = new LinkedList<Integer>();
private int capacity = 100;
private int count = capacity / 2;
public CustomCollection(int capacity) {
this.capacity = capacity;
this.count = capacity / 2;
}
public boolean contains(Integer obj) {
return map.containsKey(obj);
}
public void add(Integer obj) {
if (map.size() >= capacity + count)
for (int i = 0; i < count; i++) {
map.remove(link.removeFirst());
}
map.put(obj, obj);
link.add(obj);
}
}