我有一个数组例如:
String [][] test = {{"a","1"},
{"b","1"},
{"c","1"}};
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何从数组中删除元素.例如,我想删除项"b",以便数组看起来像:
{{"a","1"},
{"c","1"}}
Run Code Online (Sandbox Code Playgroud)
我找不到办法.到目前为止我在这里发现的不适合我:(
Ste*_*n C 11
您无法从数组中删除元素.Java数组的大小在分配数组时确定,并且无法更改.你能做的最好的事情是:
null在相关位置分配给数组; 例如
test[1] = null;
Run Code Online (Sandbox Code Playgroud)
这使您null无法处理值所在的数组中的"漏洞" .(在某些情况下,这不是问题......但在大多数情况下都是如此.)
创建一个删除了元素的新数组; 例如
String[][] tmp = new String[test.length - 1][];
int j = 0;
for (int i = 0; i < test.length; i++) {
if (i != indexOfItemToRemove) {
tmp[j++] = test[i];
}
}
test = tmp;
Run Code Online (Sandbox Code Playgroud)
Apache Commons ArrayUtils类有一些静态方法,可以更加整齐地完成这项工作(例如Object[] ArrayUtils.remove(Object[], int),但事实仍然是这种方法创建了一个新的数组对象.
更好的方法是使用合适的Collection类型.例如,ArrayList类型有一个方法,允许您删除给定位置的元素.
| 归档时间: |
|
| 查看次数: |
36264 次 |
| 最近记录: |