删除自定义arraylist中的元素

inkz8wg9  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(283)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

22小时前关门了。
改进这个问题
所以,首先,我一直被困在如何在这方面的工作,所以我放弃并要求。我有一个方法,将删除多个元素。例如 CustomArrayList containing the integers: 1, 2, 3, 4 , 5 然后调用我创建的方法 splice . splice(1, 2) 将删除2和3(第2和第3个元素)
任务是 Removes the specified number (num) of elements from the internal ArrayList of elements, starting at the given index. ```
public ArrayList splice(int index, int num) {

return null;

}

拜托,这件事我需要帮助。谢谢您。
p、 这是避免混淆的全部说明。我知道如何处理那些if语句,只是不知道如何从起始索引到指定元素删除项
如果索引<0,则不删除任何内容并返回空的arraylist。
如果索引太大(>=此customintegerarraylist的大小),请不要删除任何内容并返回空的arraylist。
如果num==0,则不删除任何内容并返回空的arraylist。
如果给定索引后的元素数小于给定的num,
只需删除内部arraylist中的其余元素。
2o7dmzc5

2o7dmzc51#

整个指令意味着“删除的”部分应该由 splice 方法(当输入参数无效时,将返回一个空列表)。
接口 List 提供方法 remove 删除给定索引处的元素并返回此元素。
因此,方法 splice 可以这样实施:

private static List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));

public static List<Integer> splice(int index, int num) {
    List<Integer> removed = new ArrayList<>();

    if (index > -1) {
        for (int i = index, j = 0; i < list.size() && j < num; j++) {
            removed.add(list.remove(i));
        }
    }

    return removed;
}

测验:

public static void main(String args[]) {
    int[] pairs = {
        -1, 2,
        5, 1,
        3, 0,
        1, 2
    };

    for (int i = 0; i < pairs.length; i += 2) {
        int index = pairs[i];
        int num = pairs[i + 1];
        System.out.printf("splice(%2d, %d) -> %s; list = %s%n", 
            index, num, splice(index, num), list);
    }
}

输出

splice(-1, 2) -> []; list = [1, 2, 3, 4, 5]
splice( 5, 1) -> []; list = [1, 2, 3, 4, 5]
splice( 3, 0) -> []; list = [1, 2, 3, 4, 5]
splice( 1, 2) -> [2, 3]; list = [1, 4, 5]

相关问题