2017-10-07 150 views
0

我想,如果已經有是具有相同名稱創建一個標題去掉了幾個不同陣列的最後一個項目..刪除對象,如果有一個類似的字符串

  1. 我檢查如果數組大於1.所以它不會刪除添加的第一個項目。或者如果只有1項。

  2. 然後我檢查數組是否包含最後添加的項目。我從大小中減去一個以得到最後一個項目。

  3. 我從陣列中刪除所有最後的項目。

    • 注意:我所有的數組在大小上是等效的,這就是爲什麼我使用相同的int來刪除。

的問題是,它是否包含添加的最後一個字符串值,它不會刪除它們。

if(titleTextArrayList.size() > 1) { 
    if (Arrays.asList(titleTextArrayList) 
      .contains(titleTextArrayList 
       .get(titleTextArrayList.size() - 1))) { 

     titleTextArrayList.remove(titleTextArrayList.size() - 1); 
     notesArrayList.remove(titleTextArrayList.size() - 1); 

     ll.removeView(checkBoxArrayList.get(titleTextArrayList.size() - 1)); 
     checkBoxArrayList.remove(titleTextArrayList.size() - 1); 
    } 
} 
+0

你爲什麼不使用Set類來達到這個目的?據我瞭解你的需要,Set適合你。 –

+0

我完全困惑。 「if(Arrays.asList(titleTextArrayList).contains(titleTextArrayList.get(titleTextArrayList.size() - 1)))''是什麼意思? 'Arrays.asList'接受一個數組,但是一個數組沒有'size'方法。 –

+0

檢查是否Arrays.asList(MyList).contains(String value)...基本上檢查數組的最後一個值到數組內的所有其他值。 – pewpew

回答

0

我要嫌自己...我有

titleTextArrayList.remove(titleTextArrayList.size()-1) 

一切基本上意味着我刪除陣列中的最後一個元素之前,我有機會刪除一切之前..所以我把它放在最後。使代碼更容易閱讀。

private void datacheck(String data) { 

     if(titleTextArrayList.size() > 1) { 

      for (int i = 0; i < titleTextArrayList.size()-1; i++) { 

        if (titleTextArrayList.get(i).equals(data)) 
         { 
          Log.i("ArraySize = ",Integer.toString(titleTextArrayList.size()-1)); 
          Log.i("I Value = ",Integer.toString(i)); 

         notesArrayList.remove(titleTextArrayList.size()-1); 
         ll.removeView(checkBoxArrayList.get(titleTextArrayList.size()-1)); 
         checkBoxArrayList.remove(titleTextArrayList.size()-1); 
         titleTextArrayList.remove(titleTextArrayList.size()-1); 

        } 

      } 
     } 
    } 
相關問題