Set形式的数组,数组内容重复
packagecom.sicdt.library.core.utils;importjava.util.ArrayList;importjava.util.Collection;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;/***
*
类 名: ArraySet
*
描 述: 自定义Set
*
作 者: shizhenwei
*
创 建: 2017年5月15日
*
版 本: v0.0.2
*
*
历 史: (版本) 作者 时间 注释*/
public class ArraySet implements Set{private ArrayListlist;publicArraySet() {
list= new ArrayList<>();
}public ArraySet(intinitialCapacity){
list= new ArrayList<>(initialCapacity);
}public ArraySet(Collection extends E>c) {
list= new ArrayList<>(c);
}
@Overridepublic intsize() {returnlist.size();
}
@Overridepublic booleanisEmpty() {returnlist.isEmpty();
}
@Overridepublic booleancontains(Object o) {returnlist.contains(o);
}
@Overridepublic Iteratoriterator() {returnlist.iterator();
}
@OverridepublicObject[] toArray() {returnlist.toArray();
}
@Overridepublic T[] toArray(T[] a) {returnlist.toArray(a);
}
@Overridepublic booleanadd(E e) {if(list.contains(e)){return false;
}returnlist.add(e);
}
@Overridepublic booleanremove(Object o) {returnlist.remove(o);
}
@Overridepublic boolean containsAll(Collection>c) {returnlist.containsAll(c);
}
@Overridepublic boolean addAll(Collection extends E>c) {if(c == null || c.isEmpty()) return false;for(E e: c){
add(e);
}return true;
}
@Overridepublic boolean retainAll(Collection>c) {returnlist.retainAll(c);
}
@Overridepublic boolean removeAll(Collection>c) {returnlist.removeAll(c);
}
@Overridepublic voidclear() {
list.clear();
}
@OverridepublicString toString() {return list == null ? "[]": list.toString();
}public static voidmain(String[] args) {
Set set = new ArraySet<>();
set.add("aa");
set.add("cc");
set.add("bb");
set.add("cc");
System.out.println(set);
Map map = new ArrayMap<>();
map.put("a", "aa");
map.put("b", "bb");
map.put("c", "cc");
map.put("a", "dd");
System.out.println(map);
System.out.println(map.keySet());
Iterator it =map.keySet().iterator();while(it.hasNext()){
String key=it.next();
String value=map.get(key);
System.out.println(key+ "," +value);
}
}
}