刪除元素我有例如一個數組:如何從一個數組
String [][] test = {{"a","1"},
{"b","1"},
{"c","1"}};
誰能告訴我如何從數組中刪除元素。例如,我想刪除項目「b」,以便陣列看起來像:
{{"a","1"},
{"c","1"}}
我找不到一種方法。什麼到目前爲止,我發現這裏是不是爲我工作:(
刪除元素我有例如一個數組:如何從一個數組
String [][] test = {{"a","1"},
{"b","1"},
{"c","1"}};
誰能告訴我如何從數組中刪除元素。例如,我想刪除項目「b」,以便陣列看起來像:
{{"a","1"},
{"c","1"}}
我找不到一種方法。什麼到目前爲止,我發現這裏是不是爲我工作:(
您不能從陣列中移除元素。 Java數組的大小在分配數組時確定,並且不能更改。您可以做的最好的是:
將null
賦值給相關位置的數組;例如
test[1] = null;
這留給你處理的數組,其中null
值在「洞」的問題。 (在某些情況下,這是沒有問題的......但在大多數情況下,它是。)
創建刪除的元素的新數組;例如
String[][] tmp = new String[test.length - 1][];
int j = 0;
for (int i = 0; i < test.length; i++) {
if (i != indexOfItemToRemove) {
tmp[j++] = test[i];
}
}
test = tmp;
阿帕奇共享ArrayUtils
類有一些靜態方法,會更加整齊做到這一點(如Object[] ArrayUtils.remove(Object[], int)
,但事實是,這種方法創建一個新的數組對象。
更好的方法應該使用合適的Collection
類型,例如,ArrayList
類型有一個方法,允許您刪除給定位置上的元素
沒有內置的方式,從一個普通的Java數組「刪除」項。
要使用什麼是ArrayList
。
您可以將數組中的條目設置爲null
(test[0][1] = null;
)。但是,「刪除」該項目以使該數組的元素少於之前的元素不能重新創建數組。數據結構定期爲ArrayList
(或根據您的需要另一個集合類)可能更方便。
我的解決方案是:
你不能從一個數組=>這是正確的刪除元素,但我們可以做一些事情來改變當前的陣列。
No need assign null to the array at the relevant position; e.g.
test[1] = null;
Create a new array with the element removed; e.g.
String[][] temp = new String[test.length - 1][];
需要以字符串獲得指數/陣列刪除:IndexToRemove
for (int i = 0; i < test.length-1; i++) {
if (i<IndexToRemove){
temp[i]=test[i];
}else if (i==IndexToRemove){
temp[i]=test[i+1];
}else {
temp[i]=test[i+1];
}
}
test = temp;
希望它有幫助!
您更好的使用而不是數組的'ArrayList'。的 – Behrang 2011-05-09 10:00:32
可能重複[我如何從Java中的數組中刪除對象?(http://stackoverflow.com/questions/112503/how-do-i-remove-objects-from-an-array-in-java) – McDowell 2011-05-09 10:19:01
沒有....這不是重複。 – Peter 2011-05-09 11:00:36