简单的去重算法
第一种实现:
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); } }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了