原谅笨重的头衔
我想编写一个从数组中删除特定条目的方法,但不会在数组中留下空位.例如,如果包含String数组
|aa,bb,cc,dd,ee|
Run Code Online (Sandbox Code Playgroud)
将提示用户输入他们想要删除的号码,该方法将找到该条目的索引,删除该索引,然后将空条目移动到最后一个槽.
因此,如果用户输入cc,则数组的内容将是
|aa,bb,dd,ee,null|
Run Code Online (Sandbox Code Playgroud)
编辑:我意识到我在这里遗漏了一些信息.我想要删除的条目将从另一个方法传递.然后我将使用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));
}
Run Code Online (Sandbox Code Playgroud)
输出:
[aa,bb,cc,dd,ee]
[aa,bb,dd,ee,null]
我们的想法是将元素从索引开始向前移动到删除+ 1.然后手动设置最新项目,null或者它将复制最后一个条目.
| 归档时间: |
|
| 查看次数: |
446 次 |
| 最近记录: |