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

从列表中删除特定索引处的元素

马淳
2023-03-14

我正在尝试编写一种方法,删除每组4个元素中的第一个、第二个和第三个元素。它似乎根本不起作用。有人能帮忙吗?

public static void reduziereKommentare(List<String> zeilen) {
        if (!zeilen.isEmpty()) {
            if (zeilen.size() % 4 != 0) {
                throw new RuntimeException("Illegal size " + zeilen.size() + " of list, must be divisible by 4.");
            }
            for (int i = 1; i <= zeilen.size() % 4; i++) {
                zeilen.remove(i);
                zeilen.remove(i + 1);
                zeilen.remove(i + 2);
            }
        }
        System.out.println(zeilen);
    }

共有1个答案

越伯寅
2023-03-14

正如注释中所述,删除元素会影响索引。每当我需要这样做时,我要么使用迭代器,要么向后循环

for (int i = zeilen.size() - 4; i >= 0; i -= 4) {
    zeilen.remove(i + 2);
    zeilen.remove(i + 1);
    zeilen.remove(i);
}

请注意,我每次迭代都从i中减去4,因此我每次都返回一个完整的4块。

另请注意,我首先删除了最大的索引元素。如果我在循环中使用ii 1i 2,我再次遇到相同的问题。我也可以使用i3次,但这使它更加清晰。

 类似资料:
  • 问题内容: 是否可以在Redis列表中的特定索引处删除元素?没有真正找到我想要的。有修剪可以让您选择一组特定的元素,LREM可以让您按值删除列表中的项目,但是我没有值。 我发现了一个黑客,您在其中使用LSET将元素的值更改为UID或字符串,例如“ DELETED”,然后您对该值调用LREM。不过,这感觉有点脏。 问题答案: 因此,完成我想要的操作的唯一方法是将索引处的值设置为预定字符串,然后按值进

  • 在List/ArrayList中有没有什么方便的方法可以移除列表中特定索引之后的所有元素?而不是手动循环通过它来移除。 为了更解释,如果我有一个包含10个元素的列表,我想提到索引3,然后索引3之后的所有元素都被删除,我的列表现在只包含4个元素(从0开始计数)

  • 问题内容: List / ArrayList中是否有任何方便的方法,我们可以通过该方法删除特定索引之后的List的所有元素。而不是手动循环进行删除。 为了进一步说明,如果我有一个包含10个元素的列表,我想提及索引3,然后删除索引3之后的所有元素,并且列表现在只包含开始的4个元素(从0开始计数) 问题答案: 子列表操作反映在原始列表中,因此清除了从索引4包含在内的所有内容,也清除了索引3之后的所有内

  • 问题内容: 我有一个包含两个“ 0”(str)的字符串,我只想删除索引4处的“ 0”(str) 我尝试调用.replace,但是显然删除了所有的“ 0”,并且我找不到能为我删除第4位字符的函数。 有人对我有提示吗? 问题答案: 使用切片,重建字符串减去要删除的索引:

  • 问题内容: 如何在Python中按索引从列表中删除元素? 我找到了方法,但是说我想删除最后一个元素,该怎么做?似乎默认的搜索列表,但是我不希望执行任何搜索。 问题答案: 使用并指定要删除的元素的索引:

  • 如何将项目插入到特定索引的列表中?不使用: 帮助!