HashSet类的用法 添加 删除 遍历

关键字: hashset类的用法 添加 删除 遍历
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值