Java基础之集合框架--HashSet
来源:互联网 发布:mac pro忘记登录密码 编辑:程序博客网 时间:2024/05/21 19:47
import java.util.*;/*往hashSet集合中存入自定对象姓名和年龄相同为同一个人,重复元素。|--Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。、|--HashSet:底层数据结构是哈希表。是线程不安全的。不同步。HashSet是如何保证元素唯一性的呢?是通过元素的两个方法,hashCode和equals来完成。先调用hashCode方法如果元素的HashCode值相同,才会判断equals是否为true。如果元素的hashcode值不同,不会调用equals。注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。|--TreeSet:Set集合的功能和Collection是一致的。*/class HashSetTest {public static void sop(Object obj) {System.out.println(obj);}public static void main(String[] args) {HashSet<Person> hs = new HashSet<>();hs.add(new Person("a1", 11));hs.add(new Person("a2", 12));hs.add(new Person("a3", 13));// hs.add(new Person("a2",12));// hs.add(new Person("a4",14));// sop("a1:"+hs.contains(new Person("a2",12)));// hs.remove(new Person("a4",13));Iterator it = hs.iterator();while (it.hasNext()) {Person p = (Person) it.next();sop(p.getName() + "::" + p.getAge());}}}class Person {private String name;private int age;Person(String name, int age) {this.name = name;this.age = age;}public int hashCode() {//条件是什么就使用什么来构造哈希码System.out.println(this.name + "....hashCode");return name.hashCode() + age * 31;//随机给定值31}public boolean equals(Object obj) {//条件是什么就使用什么来重写equals方法 if(this==obj) return true;if (!(obj instanceof Person))return false;Person p = (Person) obj;System.out.println(this.name + "...equals.." + p.name);return this.name.equals(p.name) && this.age == p.age;}public String getName() {return name;}public int getAge() {return age;}}
阅读全文
0 0
- Java基础之集合框架--HashSet
- java集合框架之HashSet
- Java基础之集合框架(一)--Collection、List、LinkedList、HashSet
- Java基础之集合框架(一)--Collection、List、LinkedList、HashSet
- java基础之集合框架--HashSet深入理解
- java集合框架之HashSet类
- Java 集合框架-HashSet
- java 集合框架-HashSet
- java基础--HashSet集合
- java-基础-集合hashset
- Java集合之HashSet
- java集合之HashSet
- Java集合之HashSet
- Java集合之HashSet
- Java集合之HashSet
- Java基础--集合框架(HashSet、TreeSet、泛型)
- java集合框架系列---HashSet
- Java集合框架之Set--HashSet源码分析
- 栈溢出笔记1.5 换一个汇编工具
- iOS 内存管理~深浅拷贝~引用计数器
- CentOS7下RabbitMq及与SpringBoot集成注意点
- pom.xml添加对oracle的支持
- Java抽象类与接口
- Java基础之集合框架--HashSet
- Linux平台 Oracle 12cR2 RAC安装Part1:准备工作
- 栈溢出笔记1.6 地址问题(1)
- bzoj 1691: [Usaco2007 Dec]挑剔的美食家(multiset贪心)
- js闭包
- Xcode报错:"Geo::GetiOSAppDocumentsDir()",Geo::PathUtils::GetSandboxDataPath()
- mybatis学习之路----#{}, ${}两种传参数方式的区别--附源码解读
- Ubuntu 安装 eclipse
- 二维数组中的查找