从连接到键的 HashSet 中删除值?
Removing Values from a HashSet that are connected to a key?
我想从学校退学class。下面的方法是不是去掉了值?想法请:
public static void withdrawStudent(String student) {
enrollments.values().remove(student);
}
public static void main(String[] args) {
enroll("101", "Pat");
withdrawStudent("Pat");
}
//这里是class的一部分。
private static HashMap<String, Set<String>> enrollments = new HashMap<String, Set<String>>();
public static void enroll(String unit, String student) {
Set<String> studentsSet = enrollments.get(unit);
if(studentsSet == null) {
studentsSet = new HashSet<>();
}
studentsSet.add(student);
enrollments.put(unit, studentsSet);
}
您的问题是您试图删除一个字符串,而 enrollments.values()
returns 一组字符串。可能的解决方法是这样,但请记住,这会将学生从每次注册中删除。
public static void withdrawStudent(String student) {
for (Set<String> studentSet : enrollments.values()) {
studentSet.remove(student);
}
}
我想从学校退学class。下面的方法是不是去掉了值?想法请:
public static void withdrawStudent(String student) {
enrollments.values().remove(student);
}
public static void main(String[] args) {
enroll("101", "Pat");
withdrawStudent("Pat");
}
//这里是class的一部分。
private static HashMap<String, Set<String>> enrollments = new HashMap<String, Set<String>>();
public static void enroll(String unit, String student) {
Set<String> studentsSet = enrollments.get(unit);
if(studentsSet == null) {
studentsSet = new HashSet<>();
}
studentsSet.add(student);
enrollments.put(unit, studentsSet);
}
您的问题是您试图删除一个字符串,而 enrollments.values()
returns 一组字符串。可能的解决方法是这样,但请记住,这会将学生从每次注册中删除。
public static void withdrawStudent(String student) {
for (Set<String> studentSet : enrollments.values()) {
studentSet.remove(student);
}
}