关键词:
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接口,由哈希表(实际上是... 查看详情