• Set 接口存储一组唯一, 无序的对象
Set常用方法
• Set相对Collection没有增加任何方法
• Set的遍历方法
• for-each
• Iterator迭代器
• 无法使用for进行遍历(因为无序, 所以没有get(i))
• HashSet、 HashMap或Hashtable中对象唯一性判断
• 重写其hashCode()和equals()方法
• TreeSet中指明排序依据
• 实现Comparable接口
• 创建实现Compator接口的类。
package cn.bjsxt.collection;
import java.util.HashSet;
import java.util.Set;
/**
* 测试Set的常用方法!
* @author Administrator
*
*/
public class TestSet {
public static void main(String[] args) {
Set set = new HashSet();
set.add("aaa");
set.add("bbb");
set.add(new String("aaa"));
System.out.println(set.size());
System.out.println(set.contains("aaa"));
set.remove("aaa");
}
}
_容器_自定义实现HashSet
package cn.bjsxt.collection;
import java.util.HashMap;
/**
* 自定义自己的HashSet
* @author Administrator
*
*/
public class SxtHashSet {
HashMap map;
private static final Object PRESENT = new Object();
public SxtHashSet(){
map = new HashMap();
}
public int size(){
return map.size();
}
public void add(Object o){
map.put(o, PRESENT); //set的不可重复就是利用了map里面键对象的不可重复!
}
public static void main(String[] args) {
SxtHashSet s = new SxtHashSet();
s.add("aaa");
s.add(new String("aaa"));
System.out.println(s.size());
}
}