当前位置: 首页 > 知识库问答 >
问题:

从ArrayList中删除项

禄源
2023-03-14

我有一个数组列表假设列表,它有8个项目A-H,现在我想从列表中删除存储在int数组中的1,3,5位置项目。我该怎么做。

我正试着和你一起做这件事

ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
list.add("G");
list.add("H");

int i[] = {1,3,5};

for (int j = 0; j < i.length; j++) {
    list.remove(i[j]);
}

但在数组的第一个被删除的项被更改之后,在下一次迭代中它删除了错误的元素或给出异常。

共有3个答案

耿招
2023-03-14
 public void DeleteUserIMP(UserIMP useriamp) {
       synchronized (ListUserIMP) {
            if (ListUserIMP.isEmpty()) {
            System.out.println("user is empty");
        }  else {
            Iterator<UserIMP> it = ListUserIMP.iterator();
            while (it.hasNext()) {
                UserIMP user = it.next();
                if (useriamp.getMoblieNumber().equals(user.getMoblieNumber())) {
                    it.remove();
                    System.out.println("remove it");
                }
            }
            // ListUserIMP.remove(useriamp);

            System.out.println(" this user removed");
        }
        Constants.RESULT_FOR_REGISTRATION = Constants.MESSAGE_OK;
        // System.out.println("This user Deleted " + Constants.MESSAGE_OK);

    }
}
锺高翰
2023-03-14

您可以使用ListIteratorArrayList中删除元素

ListIterator listIterator = List_Of_Array.listIterator();

 /* Use void remove() method of ListIterator to remove an element from List.
     It removes the last element returned by next or previous methods.
 */
listIterator.next();

//remove element returned by last next method
listIterator.remove();//remove element at 1st position
listIterator.next();
listIterator.next();
listIterator.remove();//remove element at 3rd position
listIterator.next();
listIterator.next();
listIterator.remove();//remove element at 5th position
简嘉赐
2023-03-14

在这种特定情况下,应按降序删除元素。首先索引5,然后索引3,然后索引1。这将从列表中删除元素,而不会产生不良的副作用。

for (int j = i.length-1; j >= 0; j--) {
    list.remove(i[j]);
}
 类似资料:
  • 我有一个程序,它从文件中获取输入,将文件中的每个单词保存为令牌,然后将每个令牌添加到数组列表中。 问题是arrayList出现了例如[“cat”,“dog”,“”,“”,“bird”],我不想在arrayList中出现空格。 总之,我的代码如下: 应该会删除空格,我已经通过从非文件数组列表中删除空格进行了测试。奇怪的是,如果我将其更改为,它将从ArrayList中删除cat。

  • 问题内容: 我有一个具有静态对象ArrayList的ClassA 现在,我要像这样从此列表中删除一个对象 这是用Meteorit类编写的。但是,当我想使用ArrayList中的对象时,它将引发异常。 我使用Iterator从ArrayList中删除对象,但是现在我不知道如何在这种情况下使用它。 问题答案: 这是因为某个线程实际上正在for每个循环中查看此列表,也许您正在尝试在for-each主体中

  • 我有一个hashmap,它包含一个arraylist作为值。我想检查其中一个ArrayList是否包含一个对象,然后从ArrayList中移除该对象。但是,怎么做? 我尝试过使用一些for循环,但是我得到了一个ConcurrentModificationException,并且我无法消除该异常。 我已经试过了:

  • 问题内容: 我有一个字符串数组列表,并在其中添加了一些重复值。我只想删除那个重复的值,那么如何删除它。 在这个例子中我有一个主意。 但是有没有足够的方法来删除该重复表格列表。没有使用For循环?我可以通过使用HashSet或其他方式来做到这一点,但只能使用数组列表。想对此提出您的建议。谢谢您的提前答复。 问题答案: 您可以从列表中创建一个。在将包含每个元素只有一次,在相同的顺序。然后从创建一个新的

  • 问题内容: 如果满足条件,我需要从中删除一些对象,我想知道哪种方法会更有效。 情况如下:我有一个包含包含其他一些对象的类。我必须对此进行迭代,并删除满足特定条件的所有元素。据我所知,这些是我要删除的选项: 创建一个新的并添加不符合条件的元素。迭代之后,从旧的数组列表交换到没有元素的新数组列表。 创建一个新的并添加满足条件的元素。迭代后,使用传递要删除对象的方法。 有没有更有效的方法从中删除对象?

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