java集合之hashset哈希set基础

香水炸弹熊      2022-04-09     308

关键词:

hashSet实现set接口、serializable、cloneable接口。不允许有重复值,但可以null,不保证与插入顺序一致。

HashSet迭代的时间与HashSet实例的大小(元素的数量)和底层HashSet实例(桶的数量)的“容量”的和成比例。因此,若迭代性能很重要,不要将初始容量设置的太低和加载因子设置的太小。当哈希表中元素数量大于当前容量和装载因子的乘积时,则扩容为大约当前容量的两倍。

其中数据对象必须实现hashCode()函数,HashSet线程不同步,使用Collections.synchronizedSet包装。

构造函数:

HashSet()默认初始大小16,转载因子0.75

HashSet(int initialCapacity)

HashSet(int initialCapacity,float loadFactor)

HashSet(Collection C)

常用方法:

boolean add(E e)

void clear()

boolean contains(Object o)

boolean remove(Object o)

示例:

package test;

import java.util.*;

 

/**

 * @author Administrator

 *

 */

public class TestHashSet {

    public static void main(String args[]){

        HashSet<String> hash=new HashSet<String>();

        LinkedList<String> list=new LinkedList<String>();

        list.add("list1");

        list.add("list2");

        list.add("list3");

        hash.add("哈希set1");

        hash.add("哈希set2");

        hash.add("哈希set3");

        hash.add("哈希set4");

        hash.add("哈希set5");

        hash.add("哈希set6");

        hash.addAll(list);//添加到哈希set中的list并非作为单独元素存在,[list1, 哈希set6, list3, list2, 哈希set3, 哈希set2, 哈希set5, 哈希set4, 哈希set1]

        System.out.println(hash);

        hash.remove("哈希set3");

        System.out.println(hash);

        Iterator<String> it= hash.iterator();

        while(it.hasNext()){

            System.out.println(it.next());

        }

       

    }

}

HashSet实际建立在HashMap的基础之上。map的键为set的元素,map的值为常量。

public boolean add(E e){

    return map.put(e,PRESENT) == null;

}

java集合之hashset常用方法实例介绍

一.简介HashSet是Set常见的子类对象,此类实现Set接口,由哈希表(实际为HashMap实例)支持。对集合的迭代次序不作任何保证;特别是,它不能保证订单在一段时间内保持不变。这个类允许null元素。这个类提供了基本操作(add,remo... 查看详情

java第八章:集合容器之set接口

...唯一,无序(添加顺序))         实现类:HashSet(唯一,无序)                TreeSet(唯一,有序(大小顺序))            子类:LinkedHashSet(唯一,有序(添加顺序))HashSe... 查看详情

阿花宝宝java基础笔记之集合框架

基本接口:Collection 接口:List 实现类:ArrayListLinkedList 接口:Set(唯一,无序) 实现类:HashSet(哈希)TreeSetMap接口:Map 实现类:HashMap---------------------------------------------------------------------- 查看详情

零基础学java—哈希值(四十一)

【零基础学Java】—哈希值(四十一)一、HashSet集合的介绍java.util.Set接口extendsCollection接口Set接口的特点:不允许重复的元素没有索引,没有带索引的方法,也不能使用普通的for循环遍历java.util.HashSet集合impleme... 查看详情

java-set接口

...的,通过元素的equals方法,来判断是否为重复元素。二.HashSet集合HashSet集合实现Set接口,由哈希表支持(实际上是一个HashMap集合)。HashSet集合不能保证的迭代顺序与元素存储顺序相同。HashSet集合,采用哈希表结构存储数据,保... 查看详情

java基础-集合框架之set

...ion方法相同。只是行为不同(Set不允许包含重复元素)。HashSetHashSet按Hash算法来存储集合的元素,因此具有很好的存取和查找性能。特点:HashSet不是同步的,多个线程 查看详情

java入门之数据结构(set集合)笔记(36)(代码片段)

...,所以若要实体化,则需要找到它的实现类——HashSet二、HashSet该类实现Set接口,由哈希表(实际为HashMap实例)支持。 查看详情

java学习笔记5.3.1set接口-hashset类

...API文档(三)Set接口结构图(四)Set接口主要实现类二、HashSet类(一)HashSet类概述(二)HashSet类API文档(三)HashSet类结构图(四)HashSet对象存储原理(五)案例演示任务1、创建与遍历专业哈希集合课堂练习:修改专业集合里... 查看详情

java集合进阶之collection单列集合(set)(代码片段)

目录前言Set集合Set概述Set特点HashSet集合HashSet概述HashSet特点HashSet集合保证元素唯一性源码分析LinkedHashSet集合LinkedHashSet概述与特点TreeSet集合TreeSet特点TreeSet(排序方式)总结前言    Hello!上一期我大致讲解了关于Co... 查看详情

java集合之hashset

由于HashSet是基于HashMap的,理解HashMap就等于理解了HashSet,所以这篇文章就不上源码了键值都是PRESENT,就是一个newObjcetPUT操作:returnmap.put(e,PRESENT)==nullREMOVE操作:returnmap.remove(o)==PRESENT遍历  set.iterator  set.toArrayMap的put()方法在... 查看详情

java基础-集合

...能记住元素的添加顺序。Set集合不允许包含相同的元素。HashSet是Set接口的实现类,按照Hash算法存储集合中的元素。HashSet不是同步的,如果多个线程同时访问一个HashSet,则必须通过代码来保证其同步。集合元素值可以是null。Link... 查看详情

java基础——集合体系结构(代码片段)

文章目录1.Collection2.List**2.1List集合概述和使用****2.2List集合特有方法****2.3并发修改异常****2.4ListIterator:列表迭代器****2.5数据结构**2.6List集合子类**3.Set****3.1Set****3.2哈希值****3.3HashSet****3.4哈希表****3.5LinkedHashSet****3.6TreeS 查看详情

基于哈希值的set集合hashset

此类实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 此类的实现类似于HashMap,此类的容器保存的元素也是键值对Entry,其中key指向... 查看详情

[知识整理]java集合-set

一、实现Set的几个类HashSet、LinkedHashSet、TreeSet、ConcurrentSkipListSet、CopyOnWriterArraySet二、对应底层的数据结构HashSet-哈希表LinkedHashSet-哈希表和链表TreeSet-红黑树ConcurrentSkipListSet-跳表CopyOnWriteArraySet-数组列表三、应用场景这里先从元... 查看详情

集合框架之sethashset(代码片段)

HashSet是Set接口的实现类,其底层数据结构为哈希表。HashSet是线程不安全的(不保证同步)。HashSet优点:添加、删除、查询效率高。    缺点:无序     哈希表的工作原理:  首先,拿到元素,计算元素的HashCode... 查看详情

java-基础(set~hashset)(代码片段)

JAVA-基础(Set~HashSet)1.什么是set?java.util.Set接口和java.util.List接口一样,同样继承自Collection接口,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。 2.HashSet?java.util.HashSet是Set接口的一个实现类,它所存... 查看详情

java基础_set集合

...致),可重复.Set集合:无序(存储顺序和取出不一致),唯一2.HashSet(1).概述:HashSet不保证set的迭代顺序,作为继承父类接口的Set()的实现方法,其中的元素具有唯一性。(2).为什么HashSet存储的时候不保证其唯一性我们通过查看add()方法的... 查看详情

java集合框架中的hashtable,hashmap,hashset,哈希表概念

...理解。现在,当我走得更远时,我有一些疑惑:HashMap,HashSet,Hashtable。HashMap的Javadoc说:基于哈希表的Map接口实现。此实现提供所有可选的映射操作,并允许空值和空键。HashSet的Javadoc说:此类实现Set接口,由哈希表(实际上是... 查看详情