原谅笨拙的标题
我想编写一个方法,从数组中删除特定条目,但不会在数组中留下空间隙。例如,如果一个字符串数组包含
|aa,bb,cc,dd,ee|
系统将提示用户输入要删除的数字,该方法将找到该条目的索引,删除该索引,然后将空条目移动到最后一个插槽。
因此,如果用户输入 cc,数组的内容将为
|aa,bb,dd,ee,null|
编辑:我意识到我在这里遗漏了一些信息。我要删除的条目将从另一个方法传递。然后,我将使用 for 循环来查找条目的索引(如果未找到,则不执行任何操作)。但是我一直不知道如何删除。
首先:我强烈建议使用ArrayList
您可以在其中轻松删除和添加项目,而无需更改集合的其余部分(它还有一个toArray()
方法)。
话虽这么说,这将是一个仅使用数组来完成此操作的示例解决方案:
public static void main(String[] args) {
String[] arr = new String[5];
arr[0] = "aa";
arr[1] = "bb";
arr[2] = "cc";
arr[3] = "dd";
arr[4] = "ee";
System.out.println(Arrays.toString(arr));
int deleteIndex = 2;
System.arraycopy(arr, deleteIndex + 1, arr, deleteIndex, arr.length - deleteIndex - 1);
arr[4] = null;
System.out.println(Arrays.toString(arr));
}
Output:
[aa、bb、cc、dd、ee]
[aa、bb、dd、ee、空]
这个想法是将元素从索引开始向前移动一位以删除+1。然后您手动将最新的项目设置为null
否则它会重复最后一个条目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)