Java中HashSet的size()方法如何调用?附相关代码示例
如何获取并展示HashSet的size()值
嘿,我来帮你搞定这个问题!首先,HashSet的size()方法本身用法超简单——直接调用就能返回集合里的元素数量,不过咱们得先把你没写完的代码补全,顺便把关键细节说清楚。
完整可运行代码
Student类(name包下)
package name; public class Student { private String name; public String getName() { return this.name; } public void setName(String name) { this.name = name; } // 重点:如果想让同名学生被视为重复元素,必须重写这两个方法 @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return name != null ? name.equals(student.name) : student.name == null; } @Override public int hashCode() { return name != null ? name.hashCode() : 0; } }
Client1类(client包下)
package client; import name.Student; import java.util.Set; import java.util.HashSet; import java.util.Scanner; public class Client1 { public static void main (String[] args) { Scanner scanner = new Scanner(System.in); // 实例化HashSet,指定存储Student类型 Set<Student> studentSet = new HashSet<>(); System.out.println("请输入学生名字(输入exit停止添加):"); while (true) { String inputName = scanner.nextLine().trim(); if ("exit".equalsIgnoreCase(inputName)) { break; } // 创建学生对象并添加到集合 Student student = new Student(); student.setName(inputName); studentSet.add(student); } // 核心:调用size()获取集合大小并展示 int studentCount = studentSet.size(); System.out.println("当前HashSet里一共有 " + studentCount + " 个学生"); scanner.close(); } }
关键说明
- size()的基本用法:只要你正确实例化了HashSet(像代码里的
new HashSet<>()),直接调用studentSet.size()就能得到元素的数量,返回值是int类型,直接输出即可。 - 去重的核心细节:你原来的Student类没重写
equals()和hashCode(),这会导致即使两个Student对象名字完全一样,HashSet也会把它们当成不同的元素,size()会跟着增加。如果想让同名学生被视为重复元素(符合HashSet去重的预期),一定要加上代码里那两个重写的方法。 - 避免空指针陷阱:如果只是声明了
Set<Student> studentSet;但没实例化,调用studentSet.size()会抛出NullPointerException,所以一定要记得用new创建实例。
内容的提问来源于stack exchange,提问作者Encang Cutbray
相关产品推荐
相关产品推荐

