我正在尝试修复我的项目以找到并告诉我哪些学生正在尝试使用其他名称进行注册,因此我编写了我的代码来搜索我的arraylist并找到具有相同ID号的那些,但是是否可以更改或添加一些东西,使其不会两次打印相同的信息
示例测试用例
Student ID 103 is repeating the class as names Mark Wall and Stacy Gwee
Student ID 103 is repeating the class as names Stacy Gwee and Mark Wall
for(int n = 0; n<studentList.size(); n++)
{
for(int m = 0; m<studentList.size(); m++)
{
if(studentList.get(n).getId().equals(studentList.get(m).getId()) && !studentList.get(n).getName().equals(studentList.get(m).getName()))
{
System.out.println("Student ID " + studentList.get(n).getId() + " is repeating the class as names " + studentList.get(n).getName() + " and " + studentList.get(m).getName());
}
}
}
答案 0 :(得分:4)
简单方法:
for(int m = 0 ; m < n ; m++)
或者
for(int m = n + 1 ; m < studentList.size() ; m++)
答案 1 :(得分:2)
要做到这一点,只需更改第二个for循环:
for(int m = 0; m < n; m++)
答案 2 :(得分:1)
这是正确的方法:
您需要一些方法来标记重复项。您可以创建列表或数组来标记这些重复项。然后,您将检查ID以确保之前未调用过。
答案 3 :(得分:0)
如果您将数组想象为网格n空格宽且m空格高,则表示您正在查看每个网格方块。
如果在网格上绘制对角线,实际上只需要查看线上方(或下方)的对角线。
因此,你的内循环可以开始,而不是零,但是值为n。