gpt4 book ai didi

java - 如何找到与同一对象关联的最大对象数

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

我有一个 Mentor 类,其中每个导师都有一个 ID 和一个 ArrayList 的 mentee IDs,像这样:

public class Mentor {

int mentorId;
ArrayList<Integer> mentees = new ArrayList<>();

public Mentor(int mentorId, ArrayList<Integer> mentees) {
this.mentorId = mentorId;
this.mentees = mentees ;
}
}

问题是一些学员也可以是导师

我想以某种方式获得与顶级导师相关联的所有受训者计数作为以及顶级导师手下有多少导师。

所以,基本上,如果一个导师有一个学员,他也是一个导师,那么这个导师学员也与顶级导师相关联。

所以,我的想法是遍历 mentee-list 并查看是否有任何 ID 与 MentorID 相匹配。如果为真,则将此导师的受训者列表添加到列表中并再次循环,但这不会动态工作。

我的主类看起来像这样:

    ArrayList<Mentor> mentors = new ArrayList<>();
ArrayList<Integer> mentees = new ArrayList<>();
ArrayList<Integer> mentees2 = new ArrayList<>();

mentees.add(2);
mentees.add(3);
mentees2.add(4);
mentees2.add(5);

//[1,{2,3}]
mentors.add(new Mentor(1, mentees));
//[2,{4,5}]
mentors.add(new Mentor(2, mentees2));
int mentorCount = 0;
int menteeCount = 0;
for (Mentor mentor : mentors) {

for (Integer mentee : mentees) {
mentorCount++;
if (mentee == mentor.mentorId){
mentorCount++;
//add each mentee to arraylist and start the process again, but is there an easier way to do this.
}
}
}

我想知道是否有解决这个问题的方法,也许使用

最佳答案

我建议使用良好的面向对象设计,你不应该只使用整数 id,因为在这种情况下你可以简单地创建一个 ArrayList 的 Person 对象,其中 Mentees 和 Mentors 继承自 Person。然后你可以检查一个 Person 是 Mentee 还是 Mentor 的实例:

for (Person p : people) {
if (p instanceof Mentor)
{
// Mentor logic
}
if (p instanceof Mentee)
{
// Mentee Logic
}
}

关于java - 如何找到与同一对象关联的最大对象数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71831102/

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