作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Mentor
类,其中每个导师都有一个 ID
和一个 ArrayList
的 mentee ID
s,像这样:
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 与 Mentor
的 ID
相匹配。如果为真,则将此导师的受训者列表添加到列表中并再次循环,但这不会动态工作。
我的主类看起来像这样:
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/
我是一名优秀的程序员,十分优秀!