亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

循環遍歷哈希圖并計算最小值并在沒有剩余點時停止

循環遍歷哈希圖并計算最小值并在沒有剩余點時停止

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 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號