Java 集合之HashSet常用方法实例介绍

一.简介
HashSet是Set常见的子类对象,此类实现Set接口,由哈希表(实际为HashMap实例)支持。 对集合的迭代次序不作任何保证; 特别是,它不能保证订单在一段时间内保持不变。这个类允许null元素。
这个类提供了基本操作(add,remove,contains和size)固定的时间性能,假定哈希函数将分散的桶中正确的元素。 迭代此集合需要与HashSet实例的大小(元素数量)和后台HashMap实例(桶数)的“容量”的总和成比例的时间。 因此,如果迭代性能很重要,不要将初始容量设置得太高(或负载因子太低)是非 常重要的。
Set集合是无序,在存储时哈希表是按哈希值的顺序存储的,所谓的无序就是说在存储的顺序和你加入的顺序可能不同。当两对象的哈希地址值相同时,哈希表中存储时先判断是否为同一个对象,若为同一个对象则不重复存储,若判断为不同对象则在其下方顺延而不是向右顺延。
二.常用方法说明

import java.util.HashSet;
import java.util.Iterator;
public class Set_1 {
    public static void main(String[] args){
        //产生HashSet对象
        HashSet hashset1 = new HashSet();
        //添加元素
        boolean b1 = hashset1.add("111");    //添加此元素之前无重复,故返回值为true
        hashset1.add("22");
        hashset1.add("333");
        hashset1.add("1");
        boolean b2 = hashset1.add("111");
        System.out.println("b1="+b1+";b2="+b2); //此元素在集合中已存在,添加后返回值结果为 false
        String arry1[] = {"arry1","arry2","arry3"};
        int arry2[] = {11,22,3,44};
        HashSet hashset2 = new HashSet();
        hashset1.add(arry1);
        hashset1.add(arry2);
        hashset2.add("you");
        hashset2.add("are");
        hashset2.add("yourself");
        //使用addAll添加一个集合
        hashset1.addAll(hashset2);
        System.out.println(hashset1);            //无序,取出的顺序与存入的顺序可能不同,但每次取出的顺序是相同的哦(不要认为每次取出的顺序都不同)、
        System.out.println("---------------------开始迭代器--------------------------");
        //迭代器循环取出HashSet中的元素
        Iterator it1 =  hashset1.iterator();
        //使用while,循环获取迭代器中的每个元素
//        while (it1.hasNext()){
//            System.out.println(it1.next());
//        }
        //使用for,循环获取迭代器中的每个元素
        System.out.println("it1.hasNext()="+it1.hasNext());
        for (;it1.hasNext();){
            System.out.println(it1.next());
        }

    }
}

待续

原文地址:http://blog.51cto.com/10836356/2152949

时间: 2024-10-09 21:31:00

Java 集合之HashSet常用方法实例介绍的相关文章

java集合之HashSet

HashSet:位于java.util包下 1 HashSet概述 特点:作为Set集合的一种,首先是无序的,不可重复的:允许存放null值:底层封装HashMap:实现是不同步的,线程不安全: 常用构造: public HashSet() :构造一个新的空 set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75. 常用方法: 1)添加功能 boolean  add(E e)  : 如果此 set 中尚未包含指定元素,则添加指定元素 2)判断功能 boolean  is

Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要  和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码:最后再通过实例来学会使用LinkedList.内容包括:第1部分 LinkedList介绍第2部分 LinkedList数

Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayList.先对ArrayLis

Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 第1部分 Stack介绍 Stack简介 Stack是栈.它的特性是:先进后出(FILO, F

Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

此页面为WP8"Surface Pro 3"应用的发布页面. "Surface Pro 3"是一款收集Surface Pro 3的玩机技巧的WP8程序,更好的帮助Surface用户理解并使用它. 此页面主要记录开发进度.APP发布等情况. -------------------相关进度--------------------- 目前进度:UI相关资源前期准备中,各相关开放平台的AppID申请中... Java 集合系列 09 HashMap详细介绍(源码解析)和使用

Java 程序连接 Informix 数据库方法实例介绍

Java 程序连接 Informix 数据库方法实例介绍 Informix 是一种应用广泛的关系型数据库服务器,支持多种类型的客户端连接程序,包括 .Net.Java.PHP 等.对于 Java 程序,Informix 支持两种 JDBC 供客户端连接.本文对这两种 JDBC 进行详细介绍,并给出 Java 使用两种方法连接 Informix 的方法和实例,对数据库开发人员具有指导意义 开您的试用 概述 Informix 是一种应用广泛的关系型数据库服务器,支持多种类型的客户端连接程序,包括 .

Java中间件之RMI及实例介绍 · zijian‘s blog

RMI介绍 ??远程方法调用(Remote Method Invocation)是Sun公司规定的允许在不同的JAVA虚拟机之间进行对象间通信的一种规范.在RMI中,JVM可以位于一个或多个计算机上,其中一个JVM可以调用存储在另一个JVM中的对象方法.这就使得应用程序可以远程调用其他对象方法,从而达到分布式计算的目的,以共享各个系统的资源和处理能力. ??除了RMI外,基于JAVA的实现不同JAVA虚拟机上的应用程序之间通信技术主要有两种:套接字和JAVA消息服务(JMS). ??使用套接字是

Java集合:HashSet的源码分析

Java集合---HashSet的源码分析 一.  HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素. 二.  HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成, Has