Java Set HashSet
import java.util.HashSet;
import java.util.Set;
/**
 Set存储特点:数据无序、不可重复
Set接口的实现类:
    HashSet:Set接口的主要实现类,线程不安全,可以存储null值。
        LinkedHashSet:作为HashSet的子类,遍历内部数据时,可以按照添加的顺序遍历。
    TreeSet:底层采用红黑树,元素必须是同类,按照对象的指定属性自动排序。
 无序的理解:不是指遍历时不按照添加顺序遍历,而是指在底层存储的顺序不是按照添加的顺序存储。无序性不等于随机性,每次遍历的顺序相同。
 不可重复:equals()、hashCode()、compareTo()、compare()
 Set接口中没有定义额外新的方法,都是实现的Collection接口中定义的方法。
 HashSet底层采用数组存储,初始容量为16,加载因子为0.75
        添加时,首先调用对象的hashCode()计算哈希值,然后通过某种映射函数,映射为数组的索引。
            如果当前索引位置不存在元素,直接添加
            若当前索引位置存在元素,若两者哈希值不等,直接添加;
                               若哈希值相等,调用equals()方法,如果不等,添加;
                                                           如果相等,不添加。
        Java采用链表法处理冲突,在JDK7中,新添加的元素在数组中,在JDK8中,旧的元素在数组中------(七上八下)
 */
public class SetAndHashSetTest {
    public static void main(String[] args) {
        Set set = new HashSet();
        set.add(false);
        set.add("OOP");
        set.add(new Person(12, "Hickey"));
        set.add(new Person(12, "Hickey"));
        for (Object o : set) {
            System.out.println("o = " + o);
        }
    }
}
Java Set HashSet的更多相关文章
- Java的HashSet类
		如果要查找一个集合中是否包含了某个对象,那么就需要把这个对象和这个集合中的每个对象依次进行比较和判断,直到找到这个对象为止,或者把所有对象都比较一次为止(如果最后一个对象才是要查找的对象,或者集合中没 ... 
- C++中的set和java的hashset有何区别?
		以前对C++的STL容器烂熟于心,两年没碰过C++了,现在已经很生疏了.工作原因转战java,对java的容器不甚了解,特别是每看到一种容器,不由自主地拿起和C++对比.C++中的set和java的h ... 
- Java之hashSet实现引用类型的禁止重复功能
		题目:在HashSet集合中添加Person对象,把姓名相同的人当作同一个人,禁止重复添加. 分析:1.定义一个Person类,定义name和age属性,并重写hashCode()和equals()方 ... 
- java.util.HashSet, java.util.LinkedHashMap, java.util.IdentityHashMap 源码阅读 (JDK 1.8)
		一.java.util.HashSet 1.1 HashSet集成结构 1.2 java.util.HashSet属性 private transient HashMap<E,Object> ... 
- 【java】HashSet
		package com.tn.hashSet; public class Person { private int id; private String name; private String bi ... 
- java.util.HashSet, java.util.LinkedHashMap, java.util.IdentityHashMap 源码阅读 (JDK 1.8.0_111)
		一.java.util.HashSet 1.1 HashSet集成结构 1.2 java.util.HashSet属性 private transient HashMap<E,Object> ... 
- Java List/HashSet/HashMap的排序
		在对Java无序类集合,如List(ArrayList/LinkedList).HashSet(TreeSet有序).HashMap等排序时,Java中一个公共的类Collections,提供了对Ja ... 
- Java集合 -- HashSet 和 HashMap
		HashSet 集合 HashMap 集合 HashSet集合 1.1 Set 接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B:没有索引 C:存入集合的元素没有重复 1. ... 
- Java中HashSet的解读
		一. HashSet源代码 HashSet 的实现 对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的 ... 
- java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重
		package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ... 
随机推荐
- 源码安装Python3
			源码安装Python3 一.安装Python3需要的依赖包 [root@localhost ~]# yum install -y gcc make wget openssl openssl-devel ... 
- 云计算OpenStack---虚拟机获取不到ip(12)
			一.现象描述 openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二.分析 1.查看neutron服务 ... 
- Scala 中 object、class 与 trait 的区别
			Scala 中 object.class 与 trait 的区别 引言 当你刚入门 Scala,肯定会迫不及待想要编写自己的第一个 Scala 程序.如果你已经在交互模式下敲过 Scala 代码,想必 ... 
- 11.19 rpm:RPM包管理器
			rpm命令的全称是Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版本都使用了这种形式的命令管理.安装.更新和卸载软件. 概括地说,rpm命令包含了五 ... 
- 8.4 parted:磁盘分区工具
			parted 对于小于2TB的磁盘可以用fdisk和parted命令进行分区,这种情况一般采用flisk命令,但对于大于2TB的磁盘则只能用parted分区,且需要将磁盘转换为GPT格式. p ... 
- 快成物流科技 x mPaaS | 小程序容器加持下的技术架构“提质增效”
			导言 从 2017 年开始,GMTC"移动技术大会"就更名为"大前端技术大会".发展至今,混合开发.原生开发.前端开发等概念正在深度融合,组成"大 ... 
- Epicor Advanced Unit of Measure
			作为先进的ERP系统,Epicor 不断发展以解决业务问题.2020 年 10 月,Epicor ERP 10.2.700 的一项强大的新功能高级计量单位 (UoM) 已投入生产. 发行说明看似简单, ... 
- Selenium click不生效 报错selenium.common.exceptions.InvalidArgumentException
			记录在使用selenium过程中踩的坑------ 在使用selenium时,用click点击网站弹出的文件上传框的"上传文件"按钮不生效,报错selenium.common.ex ... 
- TVM性能评估分析(七)
			TVM性能评估分析(七) Figure 1. Performance Improvement Figure 2. Depthwise convolution Figure 3. Data Fus ... 
- TVM性能评估分析(四)
			TVM性能评估分析(四) Figure 1. Efficient Privacy-Preserving ML Using TVM Figure 2. Motivation: Privacy-Pre ... 
