首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:集合概述
第二章:Collection 接口
2.1 概述
2.2 常用方法
第三章:Iterator 迭代器
3.1 Iterator 接口
3.2 迭代器实现原理
3.3 使用 Iterator 迭代器删除元素
3.4 并发修改异常
3.5 集合存储自定义对象并迭代
3.6 增强 for 循环
3.7 java.lang.Iterable 接口
第四章:List 接口
4.1 概述
4.2 常用方法
4.3 List 特有的迭代器 ListIterator
4.4 List 接口的实现类:ArrayList
4.5 List 接口的实现类:LinkedList
第五章:Set 接口
5.1 概述
5.2 Set 的实现类:HashSet
5.3 Set 的实现类之三:TreeSet
第六章:Collections 工具类
6.1 概述
6.2 常用方法
6.3 Collections 的同步控制方法
第七章:Map 接口
7.1 概述
Map 接口常用的方法
7.2 Map 的实现类:HashMap
7.3 Map 的实现类:LinkedHashMap
7.4 Map 的实现类:Hashtable
7.5 Map 的实现类:TreeMap
7.6 Map 的实现类:Properties
当前位置:
首页>>
技术小册>>
Java语言基础10-Java中的集合
小册名称:Java语言基础10-Java中的集合
- HashSet 是 Set 接口的典型实现,大多数时候使用 Set 集合的时候都使用这个实现类。 - HashSet 按照 Hash 算法来存储集合中的元素,因此具有很好的存取、查找、删除性能。 - HashSet 的底层实现原理是哈希表,在内部使用的是 HashMap 来实现的。 - HashSet 具有以下的特点: - ① 不能保证元素的顺序(元素存储顺序和取出顺序不一定相同)。 - ② HashSet 不是线程安全的。 - ③ 集合元素可以为 null 。 - HashSet集合判断两个元素相等的标准 :两个对象的 hashCode() 方法比较相等,并且两个对象的 equals() 方法返回值也相等。 - 示例: ``` package com.github.set.demo2; import java.util.Objects; /** * @author maxiaoke.com * @version 1.0 */ public class Person { /** * 姓名 */ private String name; /** * 年龄 */ private Integer age; public Person() {} public Person(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Integer getAge() { return this.age; } public void setAge(Integer age) { this.age = age; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || this.getClass() != o.getClass()) { return false; } Person person = (Person)o; return Objects.equals(this.name, person.name) && Objects.equals(this.age, person.age); } @Override public int hashCode() { return Objects.hash(this.name, this.age); } @Override public String toString() { return "Person{" + "name='" + this.name + '\'' + ", age=" + this.age + '}'; } } ``` 示例: ``` package com.github.set.demo2; import java.util.HashSet; import java.util.Set; /** * @author maxiaoke.com * @version 1.0 */ public class Test { public static void main(String[] args) { Set<Person> set = new HashSet<>(); set.add(new Person("张三", 18)); set.add(new Person("张三", 18)); set.add(new Person("张三", 21)); set.add(new Person("李四", 20)); set.add(new Person("李四", 18)); System.out.println("set = " + set); // set = [Person{name='张三', age=21}, Person{name='张三', age=18}, Person{name='李四', age=20}, Person{name='李四', age=18}] } } ```
上一篇:
5.1 概述
下一篇:
5.3 Set 的实现类之三:TreeSet
该分类下的相关小册推荐:
Java语言基础16-JDK8 新特性
Java语言基础14-枚举和注解
java源码学习笔记
Java面试指南
SpringBoot合辑-高级篇
Java语言基础2-运算符
Java语言基础3-流程控制
Java语言基础15-单元测试和日志技术
Java语言基础5-面向对象初级
手把手带你学习SpringBoot-零基础到实战
Java语言基础9-常用API和常见算法
Java语言基础13-类的加载和反射