HashSet
- 无序
- 不可重复
- 允许使用 null 元素。
- 默认初始容量16
- treeset自然排序,hashset无序
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
public class set {
public static void main(String[] args) {
// testTreeSet();//有序的
testHashSet(); //无序的
}
private static void testHashSet (){
HashSet<String> hashSet = new HashSet<String>();
hashSet.add("AAA");
hashSet.add("AAA1");
hashSet.add("AAA2");
hashSet.add("AAA3");
hashSet.add("AAA5");
hashSet.add("AAA");
hashSet.add("BBB");
hashSet.add("CCC");
System.out.println("hashSet.contains(\"BBB\") = " + hashSet.contains("BBB"));
//迭代器
Iterator<String> iterator = hashSet.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}

TreeSet
- 可以给元素进行重新排序的一个Set接口的实现
- 使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的Comparator进行排序,具体取决于使用的构造方法。
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
public class set {
public static void main(String[] args) {
testTreeSet();//有序的
// testHashSet(); //无序的
}
private static void testTreeSet(){
TreeSet<String> treeSet = new TreeSet<String>();
treeSet.add("AAA1");
treeSet.add("AAA2");
treeSet.add("AAA3");
treeSet.add("AAA4");
treeSet.add("AAA4");
treeSet.add("AAA");
treeSet.add("BBB");
treeSet.add("CCC");
for(String set : treeSet ) {
System.out.printf("%4s\n",set);
}
System.out.printf("-----------------------");
System.out.println();
System.out.println(treeSet.first());
}
}
