有关Vector里面元素重复解决办法
生活随笔
收集整理的這篇文章主要介紹了
有关Vector里面元素重复解决办法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://www.blogjava.net/apple0668/archive/2008/11/04/238721.html
最近重構(gòu)項(xiàng)目里面的一個(gè)功能,其中用到Vector容器,有一種情況是Vector里面含有相同的元素,造成得到的結(jié)果不是預(yù)期的,所以要去掉Vector里面的重復(fù)的元素。
??????? 通過(guò)查看jdk文檔,得知有個(gè)contains()方法,如果此向量包含指定的元素,則返回 true。更確切地講,當(dāng)且僅當(dāng)此向量至少包含一個(gè)滿(mǎn)足 (o==null???e==null?:?o.equals(e)) 的元素 e 時(shí),返回 true。
??????? JDK原文:
contains
public boolean contains(Object?elem)?
contains方法JDK源碼:
?
?
1public?boolean?contains(Object?elem)?{2????return?indexOf(elem,?0)?>=?0;
3????}
?
?
?
?1public?synchronized?int?indexOf(Object?elem,?int?index)?{?2????if?(elem?==?null)?{
?3????????for?(int?i?=?index?;?i?<?elementCount?;?i++)
?4????????if?(elementData[i]==null)
?5????????????return?i;
?6????}?else?{
?7????????for?(int?i?=?index?;?i?<?elementCount?;?i++)
?8????????if?(elem.equals(elementData[i]))
?9????????????return?i;
10????}
11????return?-1;
12????}
?
注:contains方法里面返回的indexOf(Object elem, int index)方法,十分重要。
測(cè)試?yán)?#xff1a;
?
?1package?org.apple.collection.test;?2
?3import?java.util.Vector;
?4
?5public?class?VectorTest?{
?6
?7????/**?*//**
?8?????*?@param?args
?9?????*/
10????public?static?void?main(String[]?args)?{
11????????//?TODO?Auto-generated?method?stub
12????????Vector<String>?v?=?new?Vector<String>();
13????????Vector<String>?o?=?new?Vector<String>();
14????????v.add("aaaaa");
15????????v.add("bbbbb");
16????????v.add("aaaaa");
17????????v.add("ccccc");
18????????for(int?i=0;i<v.size();i++)
19????????{
20????????if(!o.contains(v.get(i)))
21????????????o.add(v.get(i));
22????????}
23????????for(int?j?=?0;j<o.size();j++)
24????????{
25????????????System.out.println(o.get(j));
26????????}
27
28????}
29
30}
31
?
輸出結(jié)果aaaaa bbbbb ?ccccc
PS:所以通過(guò)contains方法可以把重復(fù)元素過(guò)濾掉。
?
總結(jié)
以上是生活随笔為你收集整理的有关Vector里面元素重复解决办法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 能不做自己写个类,也叫java.lang
- 下一篇: 大话数据结构之算法 时间复杂度