gpt4 book ai didi

java - 使用添加或删除元素方法将哈希表实现为属性

转载 作者:行者123 更新时间:2023-12-02 02:28:22 24 4
gpt4 key购买 nike

我正在尝试制作一个包含父类(super class)人员和子类教师的代码,该代码具有一个 map 作为属性,其中包含教师拥有的科目、每个科目的代码以及科目的数量。我制作了一个 HashMap 并创建了另外 2 个类、主题和代码。但我找不到从 HashMap 中添加或删除元素的方法,因为每个主题都必须对应一个代码。

在主题和代码类中,我创建了两个数组列表作为属性。

public class Teacher extends Person {

private int nr;
private Map<ArrayList<subjects>, ArrayList<codes>> c;

public Teacher(String name, String email,int nr, Map<ArrayList<subjects>,ArrayList<codes>>c ){
super(name, email);
this.c=c;
}

public int getNr() {
return nr;
}

public void setNr(int nr) {
this.nr = nr;
}

public Map<ArrayList<subjects>, ArrayList<codes>> getC() {
return c;
}

public void setC(Map<ArrayList<subjects>, ArrayList<codes>> c) {
this.c = c;
}

}

class subjects {
private ArrayList<String> subjects;


public subjects(ArrayList<String> subjects) {

this.subjects = subjects;
}

public ArrayList<String> getSubjects() {
return subjects;
}

public void setSubjects(ArrayList<String> subjects) {
this.subjects = subjects;
}
}

class codes {

private ArrayList<Integer> codes;

public Codes(ArrayList<Integer> codes) {
this.codes = codes;
}
}

最佳答案

可能你不明白 map 是如何工作的。您的代码可能如下所示。

private  Map<String, String> subjectsByCodes = new HashMap<String, String>();

public void addSubject(String code, String subject){
subjectsByCodes.put(code, subject);
}

public String getSubject(String code){
return subjectsByCodes.get(code);
}

public int getNumberOfSubject(){
return subjectsByCodes.getSize();
}

向教师添加科目:

teacher.addSubect("code-A", "subject-A");
teacher.addSubect("code-B", "subject-B");
teacher.addSubect("code-C", "subject-C");

通过代码检索主题:

teacher.getSubject("code-C");

您不需要将主题数量作为单独的属性。您可以随时通过 map 获取:

teacher.getNumberOfSubjects()

关于java - 使用添加或删除元素方法将哈希表实现为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57242569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com