2012-07-13 66 views

回答

2

由於數組的大小是固定的,所以不能隨意添加項目。您需要先將數組轉換爲列表,然後將項添加到列表中,最後再將列表轉換回數組:

List<String> tmp = new ArrayList<String>(Arrays.asList(newArray)); 
for(String s : myArray) { 
    if(!tmp.contains(s)) { 
     tmp.add(s); 
    } 
} 
newArray = tmp.toArray(new String[tmp.size()]); 
+0

實際上,如果他正在做我認爲他在做的事情,並試圖避免添加重複的項目,他可能會首先將其轉換爲Set 的實現。 集是一個通用接口(很像列表,其中LinkedList 是一個實現),它不允許重複的元素,所以你可以在myArray的每個元素上調用Set的add方法,並放心,如果它已經是在Set中,它沒有被添加兩次。 – CosmicComputer 2012-07-13 00:52:54

+0

@CosmicComputer使用一個集合並不等價,因爲它不會保留原始數組中存在的副本,並且它不會保留插入順序(除非使用鏈接的哈希集合)。 – dasblinkenlight 2012-07-13 00:56:54

+0

我做了一個假設,他不想在他的數組中有任何重複,也不特別關心順序。對不起,應該說明。這是從代碼片段粗略推斷。 – CosmicComputer 2012-07-13 01:06:42

3
if(newAray.contains(s)) 
{ 
    //do nothing 
} 
else 
{ 
    //add to newArray 
} 
+0

它不工作。我的編譯器說:「不能調用包含數組類型字符串[]」 – user1516514 2012-07-13 00:50:55

+0

抱歉,dasblinkenligth有答案。您需要在for(s:myArray)之前執行此操作: 列表 tmp = new ArrayList (Arrays.asList(newArray)); – Nullpo 2012-07-13 00:57:16