HashSet 详解
为什么80%的码农都做不了架构师?>>>
package com.sun;/* |——SortedSet接口——TreeSet实现类
Set接口——|——HashSet实现类|——LinkedHashSet实现类
HashSet
此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。
此类为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,假定哈希函数将这些元素正确地分布在桶中。对此集合进行迭代所需的时间与 HashSet 实例的大小(元素的数量)和底层 HashMap 实例(桶的数量)的“容量”的和成比例。因此,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。我们应该为要存放到散列表的各个对象定义hashCode()和equals();*/
import java.util.HashSet;
import java.util.Iterator;
public class HashSetTest {@SuppressWarnings({ "unchecked", "rawtypes" })public static void main(String[] args){HashSet hs=new HashSet();/*hs.add("one");hs.add("two");hs.add("three");hs.add("four");*/hs.add(new Student(1,"zhangsan"));hs.add(new Student(2,"lishi"));hs.add(new Student(3,"wangwu"));hs.add(new Student(1,"zhangsan"));Iterator it=hs.iterator();while(it.hasNext()){System.out.println(it.next());}}
}
class Student //HashSet要重写hashCode和equals方法
{int num;String name;Student(int num,String name){this.num=num;this.name=name;}public String toString(){return "num :"+num+" name:"+name;}public int hashCode(){return num*name.hashCode();}public boolean equals(Object o){Student s=(Student)o;return num==s.num && name.equals(s.name);}
}
转载于:https://my.oschina.net/jgy/blog/51845
HashSet 详解相关推荐
- Java 容器之Hashset 详解.
? 在之前的博文中本屌已经介绍过java的Collection接口. 作为实现了Collection接口的容器中, List容器无疑是最常用的, 无论是Arraylist, Linklist, Vec ...
- JAVA集合Set之HashSet详解_Java基础———集合之HashSet详解
1.HashSet简介 Set是一个继承于Collection的接口,即Set也是集合中的一种.Set是没有重复元素的集合. HashSet是Set接口典型实现,它按照Hash算法来存储集合中的元素, ...
- JAVA集合Set之HashSet详解
HashSet这个类实现了Set集合,实际为一个HashMap的实例.对集合的迭代次序没有任何保证; 特别是,它不能保证订单会随着时间的推移保持不变.这个类允许null 元素. 并且HashSet提供 ...
- Java HashSet详解
一.HashSet集合概述和特点 1.底层数据结构是哈希表 2.存取无序 3.不可以存储重复元素 4.没有索引,不能使用普通for循环遍历 二.哈希值 - 哈希值简介 是JDK根据对象 ...
- java中有关hashset_java中HashSet详解
HashSet 的实现 对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,查看 HashSe ...
- java set hashset_java Set HashSet详解
Set集合 就像把对象随意扔进罐子里,无法记住元素的添加顺序.Set某种程度就是Collection,方法没有不同,只是行为稍微不同,(不允许重复元素),如果一定要往里加两个相同元素,添加失败add( ...
- java set 接口_【Java提高十七】Set接口集合详解
三.Set接口 Set是一种不包括重复元素的Collection.它维持它自己的内部排序,所以随机访问没有任何意义.与List一样,它同样运行null的存在但是仅有一个.由于Set接口的特殊性,所有传 ...
- Java HashSet的实现原理详解
HashSet是Java Map类型的集合类中最常使用的,本文基于Java1.8,对于HashSet的实现原理做一下详细讲解. (Java1.8源码:http://docs.oracle.com/ja ...
- Java—Set集合详解(HashSet/LinkedHashSet/TreeSet/EnumSet)
关注微信公众号:CodingTechWork,一起学习进步. Set集合介绍 Set集合的概念 Set集合类似于一个容器,程序把很多对象保存到Set集合中,Set集合对添加顺序不记录,当有重复的对 ...
最新文章
- 全球十大AI领军人物
- 架空输电线路运行规程_[精品课程]绝缘子及其设计架空输电线路设计
- gwas snp 和_GWAS分析中:为何有些SNP效应值大却不显著?
- mysql中nvl_Mysql中类似于oracle中nvl()函数的ifnull()函数
- 【随】WCF传输大数据的设置
- 习题2-3 求平方与倒数序列的部分和
- Immutable Collections(3)Immutable List实现原理(中)变化中的不变
- 广度优先搜索解决欧拉回路时间复杂度_迷宫搜索类的双向bfs问题(例题详解)
- 利用 jQuery 克隆 Object
- C++提高部分_C++模板的局限性_以及用模板具体化来解决模板局限性问题---C++语言工作笔记086
- onLayout与onMeasure
- 在做简单网页时,遇到的一些js问题
- GreenSock动画库在REACT里的使用
- 维修电工电气控制技能实训考核装置
- 哈夫曼编码问题(贪心)
- java语言的基本介绍及相关特性
- 为什么小孩会沉迷游戏?小孩沉迷游戏中不想上学怎么办
- 【渝粤教育】电大中专药理学基础 (2)_1作业 题库
- Inkscape基础制图教程
- 清华“姚班”大佬豆瓣征婚被网暴