`
lixucheng
  • 浏览: 80081 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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]);
}
}
}
分享到:
评论

相关推荐

    hashset类的使用

    这个是关于java语言的hashset集合类的一些基本用法和详解了个方法的使用

    HashSet类的用法.pdf

    HashSetHashSetHashSetHashSetHashSetHashSetHashSetHashSetHashSet

    java集合-HashSet的使用

    HashSet 是 Java 中的一个集合类,它实现了 Set 接口并提供了...非线程安全:HashSet 类本身不是线程安全的,在多线程环境下需要进行外部同步操作,或者使用 Collections.synchronizedSet 方法封装成线程安全的集合。

    java技术文档 常用类和经典应用

    HashSet类的用法.pdf Hashtable类的用法.pdf Java语言基础.pdf Math类的常用方法.pdf String与StringBuffer.pdf Vector类的用法.pdf 迭代器Iterator的用法.pdf 反射机制.pdf 访问路经问题.pdf 基于MVC和RMI的分布....

    java中set、list和map的使用方法实例

    // set容器接口的实现类有HashSet和 LinkedHashSet两个 // HashSet不保证迭代顺序, LinkedHashSet按照元素插入的顺序迭代. // 学习List对象容器的使用 // List容器中的对象允许重复 // 常用的list接口的实现类有...

    HashSet和TreeSet使用方法的区别解析

    主要介绍了HashSet和TreeSet使用方法的区别解析,具有一定借鉴价值,需要的朋友可以参考下

    Java中的HashSet详解和使用示例_动力节点Java学院整理

    HashSet 是一个没有重复元素的集合。接下来通过实例代码给大家介绍java中的hashset相关知识,感兴趣的朋友一起看看吧

    HashSet和HashMap的区别_动力节点Java学院整理

    什么是HashSet? HashSet实现了Set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事情就是在将对象存储在HashSet之前,要先确保对象重写...如果我们没有重写这两个方法,将会使用这个方法的默认实现。。

    List 去重的6种方法(contains、迭代、hashSet、treeSet、linkedHashSet、stream)

    1:contains判断去重(有序) 此方法的优点的:理解起来比较简单,并且最终得到的集合也是有序...Stream 实现去重功能和其他方法不同的是,它不用新创建集合,使用自身接收一个去重的结果就可以了,并且实现代码也很简洁

    HashMap 和 HashSet的区别

    本文主要介绍HashMap 和 HashSet的区别,这里整理了详细的资料来说名两者的区别,并说明如何使用该方法,有需要的小伙伴可以参考下

    java语言中使用的类总结

    系统总结了 1.Date类 2.Calendar类 3.Math类与Biglnteger类 4.LinkedList泛型类 5.HashSet泛型类 6.HashMap,V&gt;泛型类 7.TreeSet泛型类 8.TreeMap,V&gt;泛型类 9.Stack泛型类 等方面的含义用法和范例。。。

    Java数据存储类型ArrayList、HashSet、HashMap、LinkedList使用不同遍历方法效率研究By Python

    Java不同数据存储类型使用不同遍历方法效率研究 GitHub代码仓库 数据存储类型 ArrayList HashSet HashMap LinkedList 遍历方法 传统遍历方法 for(int i=0;i&lt;list.size();i++) { String str = list.get(i); ... ...

    《Java和Android开发实战详解》第6到10章源代码-by 南邮-陈杨

    7.6 对象使用类变量与方法 137 习题 140 第8章 继承、抽象类与接口 142 8.1 类的继承 142 8.1.1 类层次结构 142 8.1.2 类的继承 143 8.1.3 重写和隐藏父类的方法 145 8.1.4 隐藏父类的成员变量 147 ...

    Java 基础核心总结 +经典算法大全.rar

    基础 IO 类和相关方法InputStream OutputStream Reader 类Writer 类 InputStream 及其子类 OutputStream 及其子类Reader 及其子类Writer 及其子类 注解 关于 null 的几种处理方式大小写敏感 null 是任何引用类型的...

    linked_hash_set-具有插入顺序的HashSet-Rust开发

    linked_hash_set此库基于元素的插入顺序提供了具有可预测迭代顺序的哈希...与std HashSet的比较常规用法与传统的哈希集非常相似,但是此结构还保持插入顺序。 与HashSet相比,LinkedHashSet使用一个附加的双向链表运行

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解2:Queue和LinkedList Java集合详解3:Iterator,fail-fast机制与比较器 Java集合详解4:HashMap和HashTable Java集合详解5:深入...

    大厂真题之阿里云-Java实习生

    HashSet 中的 add ()方法会使用 HashMap 的 add ()方法。以下是 HashSet 部分源码: HashMap 的 key 是唯一的,由上面的代码可以看出 HashSet 添加进去的值就是作为 HashMap 的key。所以不会 重复( HashMap 比较...

    求2个集合的交集

    TrimExcess 方法 将HashSet对象的容量设置为它所包含的元素的实际个数,向上舍入为接近的特性与实现的值。 UnionWith 方法 修改当前的HashSet对象,以包含该对象本身和指定集合中存在的所有元素 给个简单的例子...

    实验05 Java集合.doc

    2)了解Set接口及主要实现类(HashSet、TreeSet) 3)了解List接口及主要实现类(ArrayList、LinkedList、Vector) 4)了解Map接口及主要实现类(HashMap、TreeMap、HashTable) 二、实验内容及步骤 1、编写程序...

Global site tag (gtag.js) - Google Analytics