package Test;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
/**
* Set接口
* Set接口继承自Collection,Set接口中没有新增方法,方法和Collection保持完全一致。
* 我们在前面通过List学习的方法,在Set中仍然适用。因此,学习Set的使用将没有任何难度。
* Set容器特点:无序、不可重复。无序指Set中的元素没有索引,我们只能遍历查找;不可重复
* 指不允许加入重复的元素。更确切的讲,新元素如果和Set中某个元素通过equals()方法对比为true
* 则不能加入;甚至,Set中也只能放入一个null元素,不能多个。
* Set常用的实现类有:HashSet、TreeSet等,我们一般使用HashSet。
* @author pmc
*
*/
public class SetTest2 {
public static void main(String[] args){
Set<String> set=new HashSet<String>();
Set<String> set2=new HashSet<String>();
set.add("A");
set2.add("B");
set2.addAll(set);
System.out.println(set);
System.out.println(set2);
HashSetTest set3=new HashSetTest();
set3.add("C");
set3.add("D");
set3.add("E");
System.out.println(set3);
}
}
class HashSetTest{
HashMap map;
private static final Object PERSENT=new Object();
public HashSetTest(){
map=new HashMap();
}
public int size(){
return map.size();
}
public void add(Object o){
map.put(o, PERSENT);
}
@Override
public String toString() {
StringBuilder sb=new StringBuilder();
sb.append("[");
for(Object temp:map.keySet()){
sb.append(temp+",");
}
sb.setCharAt(sb.length()-1, ']');;
return sb.toString();
}
}