原來(lái)采用的方法:
?1?String[]?rid?=?request.getParameterValues("noattRid");
?2?//需要用一個(gè)臨時(shí)的變量把過(guò)濾后的結(jié)果這個(gè)存起來(lái)
?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?//還需要用一個(gè)方法來(lái)判斷在結(jié)果中是否存在此項(xiàng),如下
12??/**
13??????*?用于查找某個(gè)字符串是否在一個(gè)字符串?dāng)?shù)組中
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?//需要用一個(gè)臨時(shí)的變量把過(guò)濾后的結(jié)果這個(gè)存起來(lái)
?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?//還需要用一個(gè)方法來(lái)判斷在結(jié)果中是否存在此項(xiàng),如下
12??/**
13??????*?用于查找某個(gè)字符串是否在一個(gè)字符串?dāng)?shù)組中
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?????}
看看,要多麻煩有多麻煩,來(lái)看看新方法:
1?String[]?s?=?request.getParameterValues("noattRid");
2?List?list?=?Arrays.asList(s);
3?Set?set?=?new?HashSet(list);
4?rid=(String?[])set.toArray();
簡(jiǎn)簡(jiǎn)單單的三行代碼即可搞定,無(wú)論是從程序的可讀性、優(yōu)雅性還是效率方面都有很好的提升。2?List?list?=?Arrays.asList(s);
3?Set?set?=?new?HashSet(list);
4?rid=(String?[])set.toArray();
擴(kuò)展:你同時(shí)還可以運(yùn)用上面的方法還判斷三個(gè)字符串是否相等(可進(jìn)一步擴(kuò)展至多個(gè),但是似乎不太有實(shí)際意義),例程如下:
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