我不明白如何减少String
数组的长度。例如,使用此代码:如何从字符串数组中删除一个值并减少其长度
String[][] array = new String[5][2];
array[1][0] = "what";
array[2][0] = "is";
.....
.....
array[5][0] = "?";
我怎样才能删除array[5][0]
并获得array.length
是4,不是5?
我不明白如何减少String
数组的长度。例如,使用此代码:如何从字符串数组中删除一个值并减少其长度
String[][] array = new String[5][2];
array[1][0] = "what";
array[2][0] = "is";
.....
.....
array[5][0] = "?";
我怎样才能删除array[5][0]
并获得array.length
是4,不是5?
您无法从数组中删除项目。
但是,您可以创建一个较小大小的新阵列,并将旧阵列的内容复制到新阵列。然后,将引用的值分配给新数组。可以考虑使用java.util.List
。它有一个方法remove()
。
如果想从末端删除数组元素,也可以使用自Arrays.copyOf() JDK 1.6+
例如:
array = Arrays.copyOf(array, 4);
它只是复制原始阵列的前4种元素到一个新的阵列,所以它具有与删除阵列相同的效果[5]
如果要从指定索引中删除元素,可以使用Apache Commons Lang 3中的ArrayUtils.remove()来完成此操作。
/**Remove the element at index 3**/
array =ArrayUtils.remove(array, 3);
感谢它有很大的帮助 – Carlo
对这些东西使用数组非常耗时。我可以建议这些解决方案:
1.使用Java库提供的数据结构之一。我会使用HashMap,因为它的结构允许将一个值映射到一个键(HashMap),并且它执行添加,查找和删除项目的部分。如果你需要多于2列(HashMap),你可以将它们用于多级hashasps。
2.使用List或ArrayList结构。制作一份列表,其中包含您创建用于存储数据的数组或特殊结构。
3.(不推荐)转到手动路由。如果您有一个固定长度的数组,您可以将这些行移回去除该行,并使用索引来定义最后一行。如果您有一个动态长度的数组,每次删除一行时都需要重新构建它。
谢谢我会考虑你的建议 – Carlo
谢谢你的建议 – Carlo