簡體   English   中英

如何從Java中的二維數組中刪除元素

[英]How to remove an element from the two dimensional array in java

我有一個多維數組

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

現在我正在使用Collections.shuffle(Arrays.asList(numbers));更改位置Collections.shuffle(Arrays.asList(numbers)); 現在,我想從改組后的數組中刪除第一項,即如果第一項是{170,100} ,則必須從數組中刪除它。 為此,我試圖做這樣的事情

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

但是它拋出了java.lang.UnsupportedOperationException ,有人可以幫我從二維日中刪除第一個元素。

使用以下代碼:

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

怎么樣

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

好吧,它是用Arrays#asList方法的API編寫的

返回由指定數組支持的固定大小的列表。 (更改為將返回列表“直寫”到數組。)

您無法修改返回的列表。 您可以做的就是采用Masud的建議

問題是Arrays.asList返回一個在Arrays類中私下聲明的List。

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

並且不執行修改操作,因此

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

從它的超類AbstractList。

如Reimeus所建議:將其包裝到java.util.ArrayList或LinkedList中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM