分享

HashSet类的用法

 jp乞巧楼 2015-07-29
分类: 106 常用类库 2007-03-19 14:54 12134人阅读 评论(3) 收藏 举报
 
HashSet是实现Set接口的一个类,具有以下的特点:
         不能保证元素的排列顺序,顺序有可能发生变化。
         另外HashSet不是同步的,如果多个线程同时访问一个Set,只要有一个线程修改Set中的值,就必须进行同步处理,通常通过同步封装这个Set的对象来完成同步,如果不存在这样的对象,可以使用Collections.synchronizedSet()方法完成。
Set s = Collections.synchronizedSet(new HashSet(...));
         元素值可以是null。
方法不是很多,在前面介绍Set接口的时候方法基本上都涉及到,这里使用例子来介绍各个方法的用法。
package com.li.common;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
public class HashSetTest {
       /**
        * @param args
        */
       public static void main(String[] args) {
              // TODO Auto-generated method stub
              HashSetTest test = new HashSetTest();
              test.testHashSet();
       }
       public void testHashSet(){
              //实例化HashSet对象
              HashSet hs = new HashSet();
             
              System.out.println("添加第一个元素");
              hs.add(new String("第一个元素"));
             
              System.out.println("创建一个ArrayList对象,添加两个元素");
              ArrayList list = new ArrayList();
              list.add("第二个元素");
              list.add("第三个元素");
             
              System.out.println("把ArrayList对象添加到HashSet中");
              hs.addAll(list);
             
              System.out.println("在HashSet中添加一个元素");
              hs.add("第四个元素");
             
              System.out.println("添加一个null元素");
              hs.add(null);  
             
              System.out.println("/n通过转换成数组遍历的结果:");
              System.out.println("HashSet中的数据如下:");
              this.show2(hs);            
              System.out.println("/n通过得到Iterator遍历的结果:");
              hs.remove("第一个元素");
              System.out.println("删除/"第一个元素/"之后:");
              this.show1(hs);
             
              System.out.println("HashSet中元素的个数为:"+hs.size());
              if(hs.isEmpty()){
                     System.out.println("HashSet是空的");
              }
              else{
                     System.out.println("HashSet不是空的");
              }
              System.out.println("清空所有的元素:");
              hs.clear();
              if(hs.isEmpty()){
                     System.out.println("HashSet是空的");
              }
              else{
                     System.out.println("HashSet不是空的");
              }
       }
      
       /*
        * 得到Iterator,然后遍历输出
        */
       public void show1(HashSet hs){
              Iterator i = hs.iterator();
              while(i.hasNext()){
                     String temp = (String)i.next();
                     System.out.println(temp);
              }           
       }
      
       /*
        * 转换成数组,遍历并输出HashSet中的元素
        */
       public void show2(HashSet hs){
              Object o[] = hs.toArray();
              for(int i=0;i<o.length;i++){
                     System.out.println((String)o[i]);
              }
       }
}
 

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多