是否可以从数组(不是arraylist)中删除项目,例如
JButton[] arr = {button1, button2, button3};
我想从中删除button1。
答案 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);