如何编写Java HashSet遍历学生对象存储的代码示例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计455个文字,预计阅读时间需要2分钟。
由于Set集合不存储重复元素,所以在添加元素时,如果尝试添加一个已存在的元素,结果将如何呢?
javapublic class HashSetDemo { public static void main(String[] args) { // 创建HashSet集合对象 HashSet set=new HashSet(); // 添加元素 set.add(Java); set.add(Python); set.add(C++); // 尝试添加重复元素 boolean result=set.add(Java); // 输出结果 System.out.println(添加重复元素后,返回值: + result); }}
由于Set集合是不存储重复元素的,所以在做此案例时,如果我正常添加一个重复元素是什么结果呢?
public class HashSetDemo { public static void main(String[] args) { //创建HashSet集合对象 HashSet<Student> hashSet = new HashSet<Student>(); //创建学生对象 Student s1 = new Student("爱学习", 21); Student s2 = new Student("爱Java", 22); Student s3 = new Student("坚持不懈", 23); Student s4 = new Student("爱Java", 22); //把学生添加到集合 hashSet.add(s1); hashSet.add(s2); hashSet.add(s3); hashSet.add(s4); //遍历集合(增强for循环) for (Student s : hashSet) { System.out.println(s.getName() + "," + s.getAge()); } } }
运行结果:
通过运行结果,我们发现,重复的元素仍然被添加进去,是什么原因呢? 根据源码分析和HashSet底层数据结构可以知道,如果两个对象的哈希值相同(hashCode方法),并且对象的内容也相同(equals方法),是不会存储在哈希表的。所以我们需要在被存储的对象类中重写hashCode方法和equals方法,来解决添加了重复元素的问题。
在对象类中重写hashCode方法和equals方法后(自动生成即可)运行上面的代码,运行结果:
可见,重复的元素未被添加到集合。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计455个文字,预计阅读时间需要2分钟。
由于Set集合不存储重复元素,所以在添加元素时,如果尝试添加一个已存在的元素,结果将如何呢?
javapublic class HashSetDemo { public static void main(String[] args) { // 创建HashSet集合对象 HashSet set=new HashSet(); // 添加元素 set.add(Java); set.add(Python); set.add(C++); // 尝试添加重复元素 boolean result=set.add(Java); // 输出结果 System.out.println(添加重复元素后,返回值: + result); }}
由于Set集合是不存储重复元素的,所以在做此案例时,如果我正常添加一个重复元素是什么结果呢?
public class HashSetDemo { public static void main(String[] args) { //创建HashSet集合对象 HashSet<Student> hashSet = new HashSet<Student>(); //创建学生对象 Student s1 = new Student("爱学习", 21); Student s2 = new Student("爱Java", 22); Student s3 = new Student("坚持不懈", 23); Student s4 = new Student("爱Java", 22); //把学生添加到集合 hashSet.add(s1); hashSet.add(s2); hashSet.add(s3); hashSet.add(s4); //遍历集合(增强for循环) for (Student s : hashSet) { System.out.println(s.getName() + "," + s.getAge()); } } }
运行结果:
通过运行结果,我们发现,重复的元素仍然被添加进去,是什么原因呢? 根据源码分析和HashSet底层数据结构可以知道,如果两个对象的哈希值相同(hashCode方法),并且对象的内容也相同(equals方法),是不会存储在哈希表的。所以我们需要在被存储的对象类中重写hashCode方法和equals方法,来解决添加了重复元素的问题。
在对象类中重写hashCode方法和equals方法后(自动生成即可)运行上面的代码,运行结果:
可见,重复的元素未被添加到集合。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

