为了账号安全,请及时绑定邮箱和手机立即绑定

循环遍历哈希图并计算最小值并在没有剩余点时停止

循环遍历哈希图并计算最小值并在没有剩余点时停止

qq_遁去的一_1 2022-10-12 15:59:06
我有一个包含(点,值)的哈希图,我计算哈希图中的最小值。其次,检索点我使用它从矩阵中提取相应的值。然后我存储 xmmin,并在数组列表中检索点我的目标是不考虑数组列表中已经存在的点。我已经尝试过了,但它坚持在第一分钟。这是我尝试过的       List<Integer> dataPoints = new ArrayList(); // Storing parsed elements including Xmin                  HashMap<Integer, List<Integer>> clusters = new HashMap<>();       ArrayList<Integer> listt = new ArrayList<>();       List<Integer> l = new ArrayList<>(); //list of points for each xmin       while(E.size()!=dataPoints.size()) {       int xMin = getKey(E,MinX(E));       System.out.println("Xmin "+xMin);       if (!existsX(dataPoints, xMin)) {       dataPoints.add(xMin);       //checking id X exists in data points if no  return  close elements       for (int j = 0; j < S.getRow(xMin).length; j++) {       if (S.getEntry(xMin, j) > beta) {       l.add(j);       dataPoints.add(j);                             }               }           }这是 IfExists 函数       for (int k = 0; k < dataPoints.size(); k++) {           if (dataPoints.get(k) != xMin) {               return false;           }       }       return true;   }How can I achieve that
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

目前,您的existsX-method 包含以下内容:


for (int k = 0; k < dataPoints.size(); k++) {

  if (dataPoints.get(k) != xMin) {

    return false;

  }

}

return true;

它将立即返回false第一个不是 的项目xMin,而您想要完成相反的操作:true一旦xMin发现就返回:


for (int k = 0; k < dataPoints.size(); k++) {

  if (dataPoints.get(k) == xMin) {   // != has been changed to ==

    return true;                     // Return true as soon as we've found it

  }

}

return false;                        // Return false if it wasn't found

然而,更好的是更多地依赖为您完成工作的内置函数。在这种情况下,您的:


if(!existsX(dataPoints,xMin))

可以改为:


if(!dataPoints.contains(xMin))

所以你不需要制作自己的existsX- 方法。这里是内置的 JavaDocs 。List#contains


查看完整回答
反对 回复 2022-10-12
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

你ifExists应该是


   for (int k = 0; k < dataPoints.size(); k++) {

       if (dataPoints.get(k) == xMin) {

           return true;

       }

   }

   return false;


查看完整回答
反对 回复 2022-10-12
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号