gpt4 book ai didi

java - 比较对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:47 25 4
gpt4 key购买 nike

我有两个学生对象。

class Student{
int physics;
int english;
int chemistry;
}

我需要比较学生 A 在每个科目中的分数与学生 B 在所有科目中的分数。

物理A的成绩需要与B的物理、英语、化学成绩进行比较。类似地,A 的英语与 B 的所有三个。

如果至少有一个匹配项说 A 的化学分数等于 B 的英语分数,然后停止执行并返回false。

我的逻辑是

if(a.getPhysics==b.getPhysics || a.getPhysics==b.getEnglish || a.phy==b.chem ||  ...){
return false;
}

这是更好的逻辑还是其他好的逻辑?????

最佳答案

好吧,在任何情况下您都必须进行 O(n^2) 比较,问题是代码的整洁程度。

您现在的建议适用于 6 个 boolean 比较,如果您有 30 个主题怎么办?您会保留需要进行的数百次比较吗?

为简单起见,我更愿意将成绩保存在 ListMap 中,然后进行嵌套迭代:

for (int gradeA : thisStudent.getGrades()) {
for (int gradeB : otherStudent.getGrades()) {
if (gradeA == gradeB) return false;
}
}
return true;

当然,此代码需要适应您的场景(List 与 Map 上的不同迭代,通过不每次检查每个等级进行优化,从中提取方法等...)

关于java - 比较对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1692678/

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