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;

}

最新文章

  1. word20161221
  2. java多线程系类:JUC线程池:01之线程池架构
  3. 一键搭建vpn服务器
  4. hdu1026.Ignatius and the Princess I(bfs + 优先队列)
  5. C#的lock关键字
  6. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.FilterDispatcher是什么区别?
  7. C# 扩展方法奇思妙用高级篇六:WinForm 控件选择器
  8. c#中遍历各种数据集合的方法
  9. 全景技术大揭秘,市场核心早洞悉——VR全景加盟
  10. tools: idea 2017 激活
  11. mssql sqlserver updatetext关键字应用简介说明
  12. [Winform-WebBrowser]-在html页面中js调用winForm类方法
  13. Arrays常用方法
  14. RabbitMQ系列教程之四:路由(Routing)(转载)
  15. git基础使用——TortoiseGit
  16. mvn test
  17. Here we take a closer look at the Jordans Unveil
  18. web前端--实现前后端分离的心得
  19. 劣质代码评析——《写给大家看的C语言书(第2版)》附录B之21点程序(六)
  20. makefile--嵌套执行(四)

热门文章

  1. Java位运算符&amp;、|、^、&gt;&gt;、&lt;&lt;、~、&gt;&gt;&gt;
  2. 3分钟掌握GIt常用命令
  3. Python学习-is和==区别, encode和decode
  4. bug的生命周期
  5. 【Dgango】模版
  6. IntelliJ IDEA 如何在同一个窗口创建多个项目--超详细教程
  7. MongoDB的全文索引
  8. C#2匿名方法中的捕获变量
  9. 用深度学习做命名实体识别(六)-BERT介绍
  10. texlive支持中文的简单方法