java集合之HashSet哈希SET基础
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;
}
最新文章
- word20161221
- java多线程系类:JUC线程池:01之线程池架构
- 一键搭建vpn服务器
- hdu1026.Ignatius and the Princess I(bfs + 优先队列)
- C#的lock关键字
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.FilterDispatcher是什么区别?
- C# 扩展方法奇思妙用高级篇六:WinForm 控件选择器
- c#中遍历各种数据集合的方法
- 全景技术大揭秘,市场核心早洞悉——VR全景加盟
- tools: idea 2017 激活
- mssql sqlserver updatetext关键字应用简介说明
- [Winform-WebBrowser]-在html页面中js调用winForm类方法
- Arrays常用方法
- RabbitMQ系列教程之四:路由(Routing)(转载)
- git基础使用——TortoiseGit
- mvn test
- Here we take a closer look at the Jordans Unveil
- web前端--实现前后端分离的心得
- 劣质代码评析——《写给大家看的C语言书(第2版)》附录B之21点程序(六)
- makefile--嵌套执行(四)
热门文章
- Java位运算符&;、|、^、>;>;、<;<;、~、>;>;>;
- 3分钟掌握GIt常用命令
- Python学习-is和==区别, encode和decode
- bug的生命周期
- 【Dgango】模版
- IntelliJ IDEA 如何在同一个窗口创建多个项目--超详细教程
- MongoDB的全文索引
- C#2匿名方法中的捕获变量
- 用深度学习做命名实体识别(六)-BERT介绍
- texlive支持中文的简单方法