博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HashSet 详解
阅读量:6981 次
发布时间:2019-06-27

本文共 1737 字,大约阅读时间需要 5 分钟。

  hot3.png

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

你可能感兴趣的文章
《HTML5 canvas开发详解(第2版)》——2.12 检查一个点是否在当前路径
查看>>
《深入理解Scala》——第2章,第2.1节学习使用Scala交互模式(REPL)
查看>>
在Tableau中自定义版块地图
查看>>
《黑客秘笈——渗透测试实用指南(第2版)》—第2章2.1节被动信息搜索——开源情报(OSINT)...
查看>>
《21天学通HTML+CSS+JavaScript Web开发(第7版)》——1.7 作业
查看>>
微服务,微架构[一]之springboot[helloWorld]
查看>>
MySql导入CSV文件或制表符分割的文件
查看>>
《机器学习与R语言(原书第2版)》一1.2 机器学习的使用与滥用
查看>>
Android Monkey原理探讨
查看>>
微服务架构是什么
查看>>
paxos算法证明过程
查看>>
MongoDB Secondary同步慢问题分析
查看>>
mysql主主同步
查看>>
【Android】用MediaRecorder录制视频太短崩的问题
查看>>
Bridge网络模式下Linux虚拟机和主机进行通信
查看>>
Error 'Can't drop database 'just'; database doesn't exist' on query.
查看>>
深入浅出TCP协议的三次握手过程
查看>>
保护模式汇编系列之四 - 段页式内存管理(二)
查看>>
【Java数据结构】链表
查看>>
More Effective C++ 读书笔记六——临时对象
查看>>