2017-10-07 149 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); 

        } 

      } 
     } 
    } 
相关问题