2013-07-02 74 views
0

删除元素我有一个多维数组作为如何从二维数组中的Java

private int numbers[][] ={{ 170, 100 },{ 270, 100 },{ 370, 100 },{ 470, 100 }} 

现在我改变使用Collections.shuffle(Arrays.asList(numbers)); 有位置现在我想从洗牌取出的第一个项目数组,即如果第一项是{170,100},它必须从数组中删除。对于这一点,我试图做这样的事情

List<int[]> points =Arrays.asList(numbers); 
Collections.shuffle(points); 
points.remove(0); 

但它扔java.lang.UnsupportedOperationException可能有人帮助我从二维日删除第一个元素。

回答

3

使用下面的代码:

List<int[]> points =new ArrayList(Arrays.asList(numbers)); 
Collections.shuffle(points); 
points.remove(0); 
2

如何

List<int[]> points = new ArrayList(Arrays.asList(numbers)); 
0

那么,它Arrays#asList方法

的API书面返回指定数组支持的固定大小的列表。 (更改返回列表“直通”到阵列。)

您无法修改返回的列表。你可以做的是雇用Masud's suggestion

0

的问题是,Arrays.asList返回它在Arrays类私下声明的列表。

private static class ArrayList<E> extends AbstractList<E> 
    implements RandomAccess, java.io.Serializable 

,并没有实现修改操作,从而获得yuo're

public E remove(int index) { 
    throw new UnsupportedOperationException(); 
} 
从中

的超AbstractList的。

由于Reimeus建议:将它包装到java.util.ArrayList或LinkedList中