是否可以从数组中删除项目(不是ArrayList),例如:
JButton[] arr = {button1, button2, button3};
我希望移除它中的button1按钮。
是的,你可以这样做:arr[0] = null;
,然后按钮1就从数组中消失了。
如果你想让数组更小,比如一个只有两个元素的数组,那么你需要通过System.arraycopy(originalArray, 1, destinationArray, 0, 2)
进行数组复制,将最后两个元素复制到一个只有两个元素的数组中。
最好的解决方案:使用ArrayList,因为它就是为此而建立的。
顺便提一下,你的问题与Swing无关。
org.apache.commons.lang
的ArrayUtils.removeElement(Object[],int)
,它将删除索引为0
的元素,并且数组的大小将减少1
。arr =(JButton[])ArrayUtils.removeElement(arr , 0);
button1
并将数组更改为 {button2,button3}
,但是您可以通过执行 arr [0] = null
将第一个项目设置为 null
。null
,但数组的大小仍然保持不变,这就是数组的工作原理,对吧?List<String> list = new ArrayList<String>(Arrays.asList(array));
list.remove(button1);
array= list.toArray(array);