Set接口——HashSet和TreeSet

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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值