分享

Set接口

 大梦吾觉 2015-03-02


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


 


 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多