高手帮忙看看这个方法是不是太委琐了,要怎么改好一点,作用是过滤String[]中的重复元素..比如{"AA","BB","BB","CC","CC"}过滤后就是{"AA","BB","CC"}
////////////////////////// public static String[] setUnique(String[] values){
int num = 1;
String[] tempStr = new String[values.length];
tempStr[0] = values[0];

for(String subStr : values){
boolean state = false;
int i = 0;
while(i < values.length && tempStr[i] != null){
if(subStr.equals(tempStr[i])){
state = true;
}
i ++;
}
if(state == false){
tempStr[num] = subStr;
num ++;
}
}
int count = 0;
for(String s : tempStr){
if(s != null)
count ++;
}
String[] returnStr = new String[count];
for(int x = 0; x < count; x++){
returnStr[x] = tempStr[x];
}
return returnStr;
}

解决方案 »

  1.   

    忘了一下,方法的参数是String[],返回的值类型也必须是String[]。
      

  2.   

    public static String[] setUnique(String[] values){
      Map map = new HashMap();
      if (values == null) return null;
      for (int i=0; i< values.length; i++) {
        if(map.get(values[i]) == null) map.put(values[i],values[i]);
      }
      String[] rt = new String[values.length];
      return map.keySet().toArray(rt);
    }
      

  3.   

    用 set 好像也行,可能更方便吧,不过不太喜欢用set