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

}

}

}

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐