Java比较数组列表的特定对象值

时间:2018-08-03 12:15:25

标签: java arraylist compare knn

我正在做一个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++;
  }
}

1 个答案:

答案 0 :(得分:0)

让我尝试整理您的资料。

您有一个类似的课程

class MyObject {
    … some fields
    String string;
    … some more fields
}

您有一个List<MyObject> sortedEuclid

此外,您还有两个List<String> classYesMembersclassNoMembers

convk似乎是您size()中的sortedEuclid

然后我会这样:

for(MyObject o : sortedEuclid) {
    if (classYesMembers.contains(o.string)) {
       classYesCount++;
    }
    if (classNoMembers.contains(o.string)) {
       classNoCount++;
    }
}

有进一步改进的潜力,但让我们先检查一下我是否步入正轨。