当前位置: 首页 > 面试题库 >

如何通过检查其值从ArrayList中删除元素?

鲜于德业
2023-03-14
问题内容

我有ArrayList,我要从中删除具有特定值的元素…

例如

ArrayList<String> a=new ArrayList<String>();
a.add("abcd");
a.add("acbd");
a.add("dbca");

我知道我们可以遍历arraylist和.remove()方法来删除元素,但是我不知道如何在迭代时做到这一点。如何删除具有“
acbd”值的元素,即第二个元素?


问题答案:

在您的情况下,无需遍历列表,因为您知道要删除哪个对象。您有几种选择。首先,您可以按索引删除对象(因此,如果您知道,该对象是第二个列表元素):

 a.remove(1);       // indexes are zero-based

然后,您可以删除字符串的 第一次 出现:

 a.remove("acbd");  // removes the first String object that is equal to the
                    // String represented by this literal

或者,删除具有特定值的所有字符串:

 while(a.remove("acbd")) {}

如果您的集合中有更复杂的对象并想要删除具有特定属性的实例,则情况会有些复杂。因此,不能通过使用remove与要删除的对象相等的对象来删除它们。

在这种情况下,我通常使用第二个列表来收集我要删除的所有实例,并在第二遍中将其删除:

 List<MyBean> deleteCandidates = new ArrayList<>();
 List<MyBean> myBeans = getThemFromSomewhere();

 // Pass 1 - collect delete candidates
 for (MyBean myBean : myBeans) {
    if (shallBeDeleted(myBean)) {
       deleteCandidates.add(myBean);
    }
 }

 // Pass 2 - delete
 for (MyBean deleteCandidate : deleteCandidates) {
    myBeans.remove(deleteCandidate);
 }


 类似资料:
  • 我有一个数组,如下所示 我需要从数组中删除classId为2或4的元素,预期的结果应该是 我如何做到这一点而不使用一个循环。希望有人能帮助

  • 哦,我想这是一个很简单的问题...我只想从arraylist中删除非数字元素,只保留数字元素,我想这与java.lang.Number有关。 谢谢师父的指导 祝你有一个美好快乐的一天

  • 问题内容: 如何从ArrayList中删除重复的元素? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加Set回中ArrayList: 当然,这会破坏中的元素顺序。

  • 问题内容: 我有一个,并且我想从中删除重复的字符串。我怎样才能做到这一点? 问题答案: 如果你不想在中添加重复项,则应考虑为什么要使用允许重复项的。删除重复元素的最简单方法是将内容添加到中(不允许重复),然后将其添加回中: 当然,这破坏了中元素的顺序。

  • 问题内容: 我有一堆索引,我想从中删除这些索引中的元素。我无法做一个简单的s 序列,因为每次移除后元素都会移动。我该如何解决? 问题答案: 按降序对索引进行排序,然后将其一一删除。如果这样做,删除将不会影响以后要删除的任何索引。 如何对它们进行排序将取决于您用来存储索引的集合。如果是列表,则可以执行以下操作: 编辑 @aioobe找到了我找不到的助手。除了上述内容,您还可以使用

  • 我想要一个数组列表,并限制元素删除。我该怎么做?