是否可以从数组中删除项目?

时间:2014-02-13 20:18:16

标签: java arrays

是否可以从数组(不是arraylist)中删除项目,例如

JButton[] arr = {button1, button2, button3};

我想从中删除button1。

4 个答案:

答案 0 :(得分:2)

是的,你可以这样做:arr[0] = null;,而poof,button1已从数组中移除

如果你想让数组更小,比如一个2项数组,那么你需要通过System.arraycopy(originalArray, 1, destinationArray, 0, 2)进行数组复制,将最后两项复制成一个两项数组。

最佳解决方案:只需使用flippin'ArrayList,就像它的内容一样。

另请注意,您的问题与Swing无关。

答案 1 :(得分:1)

构建数组后,它的大小已设置,因此您无法删除button1并将数组更改为{button2, button3},但您可以通过执行将第一项设置为null arr[0] = null

答案 2 :(得分:1)

使用ArrayUtils.removeElement(Object[],int)中的org.apache.commons.lang,它将删除索引0元素,数组的大小将为decrease by 1

arr =(JButton[])ArrayUtils.removeElement(arr , 0);

答案 3 :(得分:1)

您可以创建任何索引null,但数组大小将保持不变,这就是数组的工作方式吗?

解决方法是首先将数组转换为ArrayList,删除项目然后再将其作为数组 -

List<String> list = new ArrayList<String>(Arrays.asList(array));
list.remove(button1);
array= list.toArray(array);