Java之Set集合
2021/12/7 22:17:18
本文主要是介绍Java之Set集合,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#class Test import java.util.HashSet; import java.util.Iterator; import java.util.Set; /* Set集合: 无序(元素的存取顺序不一致,如:存(123),打印(213或312等))、不重复 应用: Set<T> set = new HashSet<>(); 结论: Set集合保证元素的唯一性依赖:equals(),hashCode()两个方法 */ public class Test { public static void main(String[] args) { //向Set集合中添加五个元素,并遍历打印 //创建集合对象 Set<Student> set = new HashSet<>(); //创建元素对象 Student s1 = new Student("a",14); Student s2 = new Student("b",15); Student s3 = new Student("a",14); Student s4 = new Student("c",16); Student s5 = new Student("b",15); //向集合中添加对象 set.add(s1); set.add(s2); set.add(s3); set.add(s4); set.add(s5); //遍历集合 /* 为什么Set集合没有去重 因为Set集合保证元素的唯一性依赖:equals()和hashCode()两个方法 没有在Student类中重写这两个方法,默认调用的是Object类中的这两个方法 而Object类中的equals()方法默认比较的是地址值是否相同 因为s1-s5都独立分配了内存空间,所以地址值肯定不同,所以没有去重 解决方案: 在Student类找重写equals()和hashCode()方法 */ System.out.println("直接打印set"); System.out.println(set); System.out.println("========================================"); //通过集合对象获取其对应的迭代器对象 Iterator<Student> iterator = set.iterator(); //判断迭代器中是否有元素 System.out.println("通过迭代器实现"); while (iterator.hasNext()){ //如果有就获取元素 Student s = iterator.next(); System.out.println(s); } System.out.println("========================================"); //通过增强for遍历Set集合 System.out.println("通过增强for遍历Set集合"); for (Student student : set) { System.out.println(student); } } }
#class Student import java.util.Objects; //学生类 public class Student { //成员变量 private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return age == student.age && Objects.equals(name, student.name); } @Override public int hashCode() { return Objects.hash(name, age); } }
这篇关于Java之Set集合的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求