Set
接口——
HashSet
和
TreeSet
作者:
zccst
1.
接口实现类
HashSet
java.util.HashSet
类实现了
java.util.Set
接口。
即
HashSet
是实现了
Set
接口的
hash table
(哈希表),描述典型的
Set
集合结构
HashSet
中不允许出现重复元素,不保证集合中元素的位置。
HashSet
中允许包含值为
null
的元素,但最多只能有一个
null
元素。
例如:
TestHashSet.java
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
public class TestHashSet{
public
static void main(String[] args) {
HashSet
h = new HashSet();
h.add("1st");
h.add("2nd");
h.add(new
Integer(3));
h.add(new
Double(4.0));
h.add("2nd");
//
重复元素
,
未被加入
h.add(new
Integer(3));
//
重复元素
,
未被加入
h.add(new
Date());
System.out.println("
开始
: size=" + h.size());
Iterator
it = h.iterator();
while(it.hasNext()){
Object
o = it.next();
System.out.println(o);
}
h.remove("2nd");
System.out.println("
移除元素后
: size=" + h.size());
System.out.println(h);
}
}
输出结果:
开始
: size=5
2nd
Sun Dec 27 19:07:21 CST 2009
3
1st
4.0
移除元素后
: size=4
[Sun Dec 27 19:07:21 CST 2009, 3, 1st, 4.0]
2.
接口实现类
TreeSet
java.util.TreeSet
类也实现了
java.util.Set
接口。
它描述的是
Set
的一种变体,可以实现排序功能的集合。
在将对元素添加到
TreeSet
集中时会自动按照某种比较规则将其插入到有序的对象列中,以保证
TreeSet
集合元素组成的对象序列时刻按照“升序”排列。
TreeSet
的执行效率要比
HashSet
低,因为
TreeSet
是有序的集合。
例如:
import java.util.TreeSet;
import java.util.Iterator;
public class TestTreeSet{
public
static void main(String[] args) {
TreeSet
ts = new TreeSet();
ts.add("orange");
ts.add("banana");
ts.add("apple");
ts.add("grape");
Iterator
it = ts.iterator();
while(it.hasNext()){
String
fruit = (String)it.next();
System.out.println(fruit);
}
}
}
输出结果:
apple
banana
grape
orange
联系客服