首页 > 解决方案 > Java中是否有删除一行中直接包含3个数据的索引的功能?

问题描述

我想删除包含以下数据的索引:姓名、通行证和电话。起初,我使用了 array.remove(index) 方法,但它只有在我只有一个数据时才有效。我也尝试过使用一些公式,例如 array.remove((index-1)*3) 但是当我选择显示数据时,一切都搞砸了。我也尝试使用循环,但最终结果也搞砸了。有什么方法或逻辑可以实现吗?

在此处输入图像描述

这是我当前的代码:

case 3:
                show(menu);
                System.out.println("Input data number to be deleted: ");
                int index = scan.nextInt();
                //menu.remove(index);
                //menu.removeRange
                for(int i = index-1, j = index ; i < menu.size(); i+=3, j++){
                    menu.remove(i);
                    menu.remove(j);
                    //System.out.println("Data is removed");
                }
//              menu.remove((index-1)*3);
//              menu.remove((index-1)*3+1);
//              menu.remove((index-1)*3+2);
                System.out.println("Data is removed");
                break;

            }

标签: java

解决方案


弄清楚您要做什么有点困难,但我猜您的问题是您正在使用索引从集合中删除项目,而忽略了删除一个项目会使后续项目向前移动的事实。

换句话说,

collection.remove(3);
collection.remove(3);
collection.remove(3);

删除最初位于索引 3、4 和 5 的项目


推荐阅读