日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

有关Vector里面元素重复解决办法

發(fā)布時(shí)間:2024/4/17 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有关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)
Tests if the specified object is a component in this vector.

?

Specified by:
contains in interface Collection<E>
Specified by:
contains in interface List<E>
Overrides:
contains in class AbstractCollection<E>

Parameters:
elem - an object.
Returns:
true if and only if the specified object is the same as a component in this vector, as determined by the equals method; false otherwise.
因此:可以通過(guò)該方法來(lái)實(shí)現(xiàn)過(guò)濾重復(fù)的元素。

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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。