HashSet集合介绍和哈希值
HashSet集合介绍
~java.util.Set接口 extends Collection 接口
~Set接口的特点:
  1.不允许存储重复的元素
  2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
~Java.util.HashSet集合 implements Set接口
~HashSet特点:
  1.不允许存储重复的元素
  2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
  3.是一个无序的集合,存储元素和取出元素的顺序有可能不一致
  4.底层是一个哈希表结构(查询的速度非常的快)
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
//使用add方法往集合中添加元素
set.add(1);
set.add(3);
set.add(2);
set.add(1);
//使用迭代器遍历set集合
Iterator<Integer> it = set.iterator();
while (it.hasNext()) {
Integer n= it.next();
System.out.println(n);//1,2,3
}
//使用增强for循环遍历set集合
System.out.println("=================");
for (Integer i:set) {
System.out.println(i);
}
}
哈希值
~哈希值:是一个十进制的整数由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到地址,不是数据实际存储的物理地址)
~在Object类有一个方法,可以获取对象的哈希值
~int hashCode() 返回该对象的哈希码值
~hashCode方法的源码:
public native int hashCode();
native:代表该方法调用的是本地操作系统的方法
public static void main(String[] args) {
//Person类继承了Object类,所以可以使用Object类的hashCode方法
Person p1 = new Person();
int h1 = p1.hashCode();
System.out.println(h1);//793589513 | 1
Person p2 = new Person();
int h2 = p2.hashCode();
System.out.println(h2);//1313922862 | 1
/*toString方法的源码:
return getClass().getName()+"@"+Integer.toNextString(hashCode());
*/
System.out.println(p1);//day17.demo01.Person@2f4d3709
System.out.println(p2);//day17.demo01.Person@4e50df2e
System.out.println(p1==p2);//false
/*String类的哈希值
String类重写Object类的hashCode方法
*/
String s1=new String("abc");//96354
String s2=new String("abc");//96354
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
System.out.println("重地".hashCode());//1179395
System.out.println("通话".hashCode());//1179395
}
public class Person extends Object{
//重写HashCode方法
    @Override
    public int hashCode() {
        return 1;
    }
}
HashSet集合介绍和哈希值的更多相关文章
- HashSet集合的介绍和哈希值
		
java.util.Set接口 extends Collection接口 Set接口的特点: 1.不允许存储重复的元素 2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历 java.uti ...
 - 红黑树规则,TreeSet原理,HashSet特点,什么是哈希值,HashSet底层原理,Map集合特点,Map集合遍历方法
		
==学习目标== 1.能够了解红黑树 2.能够掌握HashSet集合的特点以及使用(特点以及使用,哈希表数据结构) 3.能够掌握Map集合的特点以及使用(特点,常见方法,Map集合的遍历) 4.能够掌 ...
 - Java set接口之HashSet集合原理讲解
		
Set接口 java.util.set接口继承自Collection接口,它与Collection接口中的方法基本一致, 并没有对 Collection接口进行功能上的扩充,只是比collection ...
 - Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例
		
概要 这一章,我们对HashSet进行学习.我们先对HashSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashSet.内容包括:第1部分 HashSet介绍第2部分 HashSe ...
 - 【转】Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例--不错
		
原文网址:http://www.cnblogs.com/skywang12345/p/3311252.html 概要 这一章,我们对HashSet进行学习.我们先对HashSet有个整体认识,然后再学 ...
 - HashSet HashTable HashMap的区别 及其Java集合介绍
		
(1)HashSet是set的一个实现类,hashMap是Map的一个实现类,同时hashMap是hashTable的替代品(为什么后面会讲到). (2)HashSet以对象作为元素,而HashMap ...
 - 哈希值、HashSet、LinkedHashSet
		
一.哈希值 1. 哈希值其实就是一个int数字,我们可以把哈希值看成对象的一个标识,Object中的hashCode方法,可以获取到对象的哈希值 2. Object中的hashCode方法是根据地址值 ...
 - Java学习:Set接口与HashSet集合存储数据的结构(哈希表)
		
Set接口 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许存储重复的元素 没有索引,没有带索引的方法,也不能使用普通的for循环遍历 java.u ...
 - C# HashSet集合类型使用介绍
		
1.HashSet集合 使用HashSet可以提高集合的运算.使用HashSet集合不自带排序方法,如果需要排序的需求可以参考使用List<T>集合配合Sort方法. HashSet的优势 ...
 
随机推荐
- Kafka生成消息时的3种分区策略
			
摘要:KafkaProducer在发送消息的时候,需要指定发送到哪个分区, 那么这个分区策略都有哪些呢? 本文分享自华为云社区<Kafka生产者3中分区分配策略>,作者:石臻臻的杂货铺. ...
 - 攻防世界-MISC:Training-Stegano-1
			
这是攻防世界高手进阶区的题目,题目如下: 点击下载附件一,得到一张bmp图片 尝试用stegslove打开,并没有得到什么有用的信息,用010editor打开,发现文件后面有一串字符串 尝试提交fla ...
 - day02 真正的高并发还得看IO多路复用
			
教程说明 C++高性能网络服务保姆级教程 首发地址 day02 真正的高并发还得看IO多路复用 本节目的 使用epoll实现一个高并发的服务器 从单进程讲起 上节从一个基础的socket服务说起我们实 ...
 - Matlab学习笔记 绘图
			
1.二维曲线(1)plot函数①plot函数的基本用法:plot(x,y),其中x和y分别用于存储x坐标和y坐标数据. >>x=[1,2,3]; >>y=[4,5,6]; &g ...
 - 在windows上安装elasticsearch7.6
			
在windows上安装elasticsearch7.6 安装Java1.8 下载Java1.8 提取码:yi0c 链接:https://pan.baidu.com/s/1mNd2Yg-k6ob91bO ...
 - 使用FastJson导出JSON
			
概述 fastjson是目前java语言中最快的json库,比自称最快的jackson速度要快,比gson快大约6倍. https://github.com/alibaba/fastjson Fast ...
 - JS&JQ
			
1.css()设置单个或多个值: $(".iconList a").css("width", "32%")--单值:属性和值逗号分隔. $( ...
 - 5分钟了解二叉树之AVL树
			
转载请注明出处:https://www.cnblogs.com/morningli/p/16033733.html AVL树是带有平衡条件的二叉查找树,其每个节点的左子树和右子树的高度最多相差1.为了 ...
 - 2021夏季学期华清大学EE数算OJ2:难缠的店长
			
2021年夏季学期华清大学电子系数算oj2题解 某知名oier锐评蒟蒻的oj1题解: 话不多说,进入oj2题解: 难缠的oj 之 难缠的店长 当时读完我已经因为无良甲方的行为出离愤怒了!但是做题还是要 ...
 - 二叉树遍历在Unity中的实现
			
前言:今天放一天,想到要放国庆假了就心烦气躁,躺床上又焦虑,回想起面试官的一副扑克脸,马上跳起来看了看数据结构. 今天复习了二叉树,包括一些基本概念和特性,当看到二叉树遍历的章节时,马上联想到了Uni ...