實現方法一:使用List
public static String[] array_unique(String[] ss) {
// array_unique
List<String> list =new ArrayList<String>();
for(String s:ss){
if(!list.contains(s)) //或者list.indexOf(s)!=-1
list.add(s);
}
return list.toArray(new String[list.size()]);
}
實現方法二:使用Set
public static String[] array_unique(String[] ss) {
Set<String> set=new HashSet<String>(Arrays.asList(ss));
return set.toArray(new String[set.size()]);
//或者return new HashSet<String>(Arrays.asList(ss)).toArray(new String[0]);
}
*****************************************************************************上面兩個方法裏new String[]中的定義數組長度,無論多少都可以。
因爲該數組只是爲了作爲輸出String[]的一個模板,輸出長度和該數組長度無關。
所以即使把new String[0]換成ss也沒問題,這樣不會創建新對象系統優化更好。
但是爲了讓大家能夠理解這裏先寫成new String[0] 。
*****************************************************************************