原來采用的方法:
?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?????}
?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();
簡簡單單的三行代碼即可搞定,無論是從程序的可讀性、優雅性還是效率方面都有很好的提升。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
2?List?list?=?Arrays.asList(s);
3?Set?set?=?new?HashSet(list);
4?System.out.println(list.size()?==?set.size());?//?false