我正在做一个KNN项目。我有一个存储有4个属性(int,int,double,string)的对象的arraylist,我如何到达每个特定的字符串并将它们与另一个字符串进行比较(它不会让我使用我需要的contains函数)。问题是我的sortedEuclid数组列表有14个成员,但其他数组列表具有不同的成员,classYesMembers(仅包含Yes)具有9个成员,而classNoMembers(仅包含No)具有5个成员。这是我的代码,非常感谢。 convk是用户输入的大小,以显示从高到低的第一个最低元素到最高的元素。例如,如果用户输入3,它将显示最低的3个欧式距离,并根据这些距离链接是或否。
for(int i=0; int i< convk; i++){
if(sortedEuclid.get(i).getClasses().equals(classYesMembers)){
classYesCount++;
}else{
classNoCount++;
}
}
答案 0 :(得分:0)
让我尝试整理您的资料。
您有一个类似的课程
class MyObject {
… some fields
String string;
… some more fields
}
您有一个List<MyObject> sortedEuclid
。
此外,您还有两个List<String> classYesMembers
和classNoMembers
。
convk
似乎是您size()
中的sortedEuclid
?
然后我会这样:
for(MyObject o : sortedEuclid) {
if (classYesMembers.contains(o.string)) {
classYesCount++;
}
if (classNoMembers.contains(o.string)) {
classNoCount++;
}
}
有进一步改进的潜力,但让我们先检查一下我是否步入正轨。