Java 对照其他对象值检查当前对象值的值
我正在尝试删除一个属性中具有相同值的所有重复对象。我有Java 对照其他对象值检查当前对象值的值,java,Java,我正在尝试删除一个属性中具有相同值的所有重复对象。我有courses[]对象,它们都包含一个courseLevel,它由一个四位整数组成 我在循环中从0递增x,并在循环的每次迭代中存储数据和重置数据,以在下一个递增的courses[x]对象中存储新信息 for (int n = 0; n < courses.length; n++) { if (courses[x].getCourseLevel() == courses[n].getCourseLe
courses[]
对象,它们都包含一个courseLevel
,它由一个四位整数组成
我在循环中从0
递增x
,并在循环的每次迭代中存储数据和重置数据,以在下一个递增的courses[x]
对象中存储新信息
for (int n = 0; n < courses.length; n++) {
if (courses[x].getCourseLevel() == courses[n].getCourseLevel()) {
System.out.println("Duplicate" + courses[x]);
}
}
for(int n=0;n
如您所见,我从courses[x]
开始,想检查它的courseLevel
是否与创建到该点的任何其他对象相等,但问题是它检查自己,我如何检查所有courses[n]
除了courses[x]
尝试使用equals(),但无法比较int类型。for(int n=0;nfor (int n = 0; n < courses.length; n++) {
if ((courses[x].getCourseLevel() == courses[n].getCourseLevel()) && x != n) {
System.out.println("Duplicate" + courses[x]);
}
}
如果((课程[x].getCourseLevel()==课程[n].getCourseLevel())&&x!=n){
System.out.println(“重复”+课程[x]);
}
}
您可以尝试和&x!=n
更简单的方法是重写equals()
和hashCode()
方法,然后将所有对象放在集中,只获取唯一的对象。我确实尝试过。我将所有对象添加到一个列表中。然后添加到一个集合并返回到列表中。然后,我按课程级别(升序)对它们进行排序。但我仍然有DUP。如果您使用的是Java 8,则可以使用来自的方法。只需将数组转换为流:Arrays.stream(courses)。