`

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类的用法.pdf

    可以使用`addAll()`方法从另一个集合(例如`ArrayList`)中添加元素到`HashSet`中。 ```java ArrayList&lt;String&gt; list = new ArrayList(); list.add("第二个元素"); list.add("第三个元素"); hs.addAll(list);...

    hashset类的使用

    上面的示例程序创建了一个HashSet对象,并通过add方法添加了几个字符串元素。然后使用contains方法检查HashSet中是否包含特定字符串。我们还演示了remove方法来删除一个元素,使用size方法获取了HashSet中元素的数量...

    Java HashSet集合存储遍历学生对象代码实例

    在本文中,我们将通过一个实例,介绍如何使用Java HashSet集合来存储和遍历学生对象,并解决添加重复元素的问题。 知识点1: HashSet集合的特点 HashSet集合是一种基于哈希表的集合实现,它的特点是: * 不存储...

    java 利用HashSet删除学生

    HashSet类提供了添加元素(add())、删除元素(remove())、检查元素是否存在(contains())等方法。在删除学生这个场景中,我们通常会有一个表示学生的类,例如`Student`,它包含一些属性如学号(id)、姓名(name...

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

    HashSet通过调用HashMap的方法来完成添加、删除、查找等操作。HashMap提供了快速定位元素的能力,使得HashSet具有高效的查找性能。 ### 源码解析(基于JDK 1.6.0_45) 在JDK 1.6版本的HashSet源码中,可以看到一个...

    java集合-HashSet的使用

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

    集合类HashSet

    理解其内部机制和使用方法,对于编写高效的Java代码至关重要。在黑马程序员_毕向东_Java基础视频教程中,你可能会更详细地学习到关于HashSet的实现原理和实战技巧。通过观看相关视频和实践操作,可以加深对HashSet的...

    如何遍历一个java集合

    你可以通过调用`iterator()`方法获取迭代器,然后使用`hasNext()`和`next()`方法遍历集合的所有元素。例如: ```java ArrayList&lt;String&gt; list = new ArrayList(); // 添加元素... Iterator&lt;String&gt; it = list....

    C#使用foreach遍历哈希表(hashtable)的方法

    在C#编程语言中,哈希表(Hashtable)是一种常用的数据结构,它提供...在实际应用中,可能还需要考虑到异常处理、性能优化等其他因素,但基本的遍历方法如上所述。熟练掌握这些技巧,能够使你在C#编程中更加游刃有余。

    ThinkinginJava之Set接口、HashSet源码学习.pdf

    Set接口继承了Collection接口,提供了与Collection相同的基本方法,如添加元素(add)、判断是否为空(isEmpty)、删除元素(remove)等。然而,Set接口的独特之处在于它确保了集合中的元素都是唯一的。Set接口不允许插入...

    Java中HashSet的解读_.docx

    HashSet的遍历也是通过HashMap的`keySet()`方法实现的,它返回一个迭代器,可以遍历HashSet的所有元素。由于HashSet不保证元素的顺序,所以遍历顺序可能与添加顺序不同。 安全性方面,虽然HashSet本身没有提供线程...

    HashSet和TreeSet.doc

    由于排序的存在,TreeSet 的插入、删除和查找操作通常比 HashSet 稍慢,但是提供了有序的遍历能力。同样,TreeSet 也只允许存储唯一的元素,不允许有重复。与 HashSet 相比,TreeSet 的迭代顺序是可预测的,即按照...

    遍历并批量删除容器中元素出现ConcurrentModificationException原因及处置

    在Java中,我们通常会使用`Iterator`来安全地遍历并修改集合,因为`Iterator`提供了`remove()`方法来删除当前迭代的元素。但如果你在不使用`Iterator`的情况下直接调用集合的`remove()`或其他修改方法,就会触发异常...

    java集合类的基本用法

    ### Java集合类的基本用法 Java集合框架是Java标准库的一部分,它提供了强大的容器对象来存储和操作数据。集合框架主要包括两种类型的容器:列表(List)和集合(Set)。此外,还包括映射(Map),用于存储键值对。...

    集合的概念及应用和HashSet保证数据不重复的原理

    1. **哈希函数**:当向HashSet中添加一个元素时,首先会调用该元素所属类的`hashCode()`方法生成哈希码。一个好的哈希函数应该尽可能地将不同元素映射到不同的哈希码,以减少哈希冲突。如果两个对象的哈希码相同,...

    通过 HashMap、HashSet 的源代码分析其 Hash 存储机制1

    因此,HashSet的所有操作,如添加、删除、查找等,都会转化为HashMap的操作。 哈希存储机制的关键在于哈希函数的设计,一个良好的哈希函数应能尽可能地将不同元素均匀分布到桶(内部数组的索引)中,减少冲突。在...

    JAVA集合类用法总结

    集合类的主要接口包括Collection、List、Set和Map,这些接口定义了各种操作集合对象的方法,比如添加、删除、修改和遍历元素。在Java API中,不同的集合类根据其特性实现了这些接口,为开发者提供了多样化的选择。 ...

    实验05 Java集合.doc

    最后,我们用HashMap展示了Map的基本用法,添加键值对,遍历并打印键值对,删除指定键的元素,再次检查集合大小。 思考题中,我们讨论了List、Set和Map的区别,以及为什么优先选择集合框架而非数组。集合框架提供了...

    Set用法及与List的区别

    以下是一些基本的HashSet用法: 1. **创建HashSet**:你可以通过无参构造函数或传入初始集合来创建HashSet。 ```java Set&lt;String&gt; set = new HashSet(); Set&lt;String&gt; set = new HashSet(Arrays.asList("Element1...

    C#(.net)中关于树的使用(添加删除等)

    - 使用适当的数据结构(如HashSet、LinkedList等)来存储子节点,以优化插入和删除速度。 总之,理解并掌握C#中树的使用,不仅有助于编写高效的数据结构算法,还能在各种应用场景中发挥重要作用,如文件系统、...

Global site tag (gtag.js) - Google Analytics