高手帮忙看看一个过滤String[]中重复元素的方法!!!

runbeck 2007-07-20 05:38:54
高手帮忙看看这个方法是不是太委琐了,要怎么改好一点,作用是过滤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;
}
...全文
220 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingling295 2007-07-20
  • 打赏
  • 举报
回复
学习
kevinliuu 2007-07-20
  • 打赏
  • 举报
回复
肯定用set
itcswgq 2007-07-20
  • 打赏
  • 举报
回复
用 set 好像也行,可能更方便吧,不过不太喜欢用set
runbeck 2007-07-20
  • 打赏
  • 举报
回复
谢谢了,我试试。
itcswgq 2007-07-20
  • 打赏
  • 举报
回复
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);
}
runbeck 2007-07-20
  • 打赏
  • 举报
回复
怎么用?
itcswgq 2007-07-20
  • 打赏
  • 举报
回复
class StringUtil {

}
runbeck 2007-07-20
  • 打赏
  • 举报
回复
忘了一下,方法的参数是String[],返回的值类型也必须是String[]。
laolang08 2007-07-20
  • 打赏
  • 举报
回复
用Set,写进去再读出来。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧