转载 自http://www.blogjava.net/fastzch/archive/2006/04/11/40507.html?Pending=true#Post
1、去掉一个字符串数组中的重复项:(2006.04.11.)
原来采用的方法:
1 String[] rid = request.getParameterValues("noattRid");
2 //需要用一个临时的变量把过滤后的结果这个存起来
3 String[] ridFiltered = new String[rid.length];
4 int index = 0;
5 for (int i = 0; i < rid.length; i++) {
6 if (!this.isExistString(ridFiltered, rid[i])&&!rid[i].equals("")) {
7 ridFiltered[index++] = rid[i];
8 }
9 }
10
11 //还需要用一个方法来判断在结果中是否存在此项,如下
12 /**
13 * 用于查找某个字符串是否在一个字符串数组中
14 * @param dest String[]
15 * @param str String
16 * return boolean
17 */
18
19 public boolean isExistString(String[] dest, String str) {
20 boolean flag = false;
21 for (int i = 0; i < dest.length; i++) {
22 if (str.equals(dest[i])) {
23 flag = true;
24 }
25 }
26 return flag;
27 }
看看,要多麻烦有多麻烦,来看看新方法:
1 String[] s = request.getParameterValues("noattRid");
2 List list = Arrays.asList(s);
3 Set set = new HashSet(list);
4 rid=(String [])set.toArray();
简简单单的三行代码即可搞定,无论是从程序的可读性、优雅性还是效率方面都有很好的提升。
扩展:你同时还可以运用上面的方法还判断三个字符串是否相等(可进一步扩展至多个,但是似乎不太有实际意义),例程如下:
1 String[] s = {"one", "two", "two"};
2 List list = Arrays.asList(s);
3 Set set = new HashSet(list);
4 System.out.println(list.size() == set.size()); // false
|----------------------------------------------------------------------------------------|
版权声明 版权所有 @zhyiwww
引用请注明来源 http://www.blogjava.net/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2006-04-13 09:38
zhyiwww 阅读(5188)
评论(5) 编辑 收藏 所属分类:
java basic