2013-07-02 73 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中