http://www.blogjava.net/apple0668/archive/2008/11/04/238721.html

最近重构项目里面的一个功能,其中用到Vector容器,有一种情况是Vector里面含有相同的元素,造成得到的结果不是预期的,所以要去掉Vector里面的重复的元素。
        通过查看jdk文档,得知有个contains()方法,如果此向量包含指定的元素,则返回 true。更确切地讲,当且仅当此向量至少包含一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,返回 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.
因此:可以通过该方法来实现过滤重复的元素。

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)方法,十分重要。

测试例子:

 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

输出结果aaaaa bbbbb  ccccc

PS:所以通过contains方法可以把重复元素过滤掉。

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

  1. Webdriver定位不到元素的解决办法

    不知道怎么回事,先前能跑动的case,现在元素始终找不到. 但是我xpath是能定位得到的,debug了一下,结果发现在 WebElementelement = locator.findElement ...

  2. 微信小程序 相同appid项目名称重复解决办法

    在做微信小程序实验的时候有一次在硬盘直接删除项目 比如我建的小程序的项目名叫 layout 当我再次使用微信开发工具建立 layout 项目的时候报已存在touristappid layout项目 这 ...

  3. v-if导致用ref取不到元素的解决办法

    今天在写一个功能的时候需要给一个用ref取到并且用this.$refs("")获取到的元素并且用this.$refs("XXX")[0].style渲染出来的d ...

  4. div宽度设置width:100%后再设置padding或margin超出父元素的解决办法

    在设置了元素宽度width100%后再加上margin和padding超出父元素宽度,其实解决的方法很简单,直接使用CSS的 box-sizing 属性就可以解决这个问题,这个是CSS3新属性,可以将 ...

  5. R语言的告警”条件的长度大于一,因此只能用其第一元素“的解决办法

    告警:"条件的长度大于一,因此只能用其第一元素" 原因:向量和标量的问题 举例: > x<-seq(-2,2): # x是个长度为5的向量 > x [1] -2 ...

  6. android studio 错误:类重复 解决办法

    问题: 像这种项目目录结构,里面每一个目录里面都有相同的类,编译时会出现 错误:类重复 报错无法继续编译 解决方案1: 在build Variant选项中选择你想要对应的编译选项,编译且运行到手机上 ...

  7. Maven常见警告解决办法

    1.Duplicating managed version 2.9.0 for jedis 原因:重复管理某个jar包的版本,一般出现在父类pom有<dependencyManagement&g ...

  8. css不换行省略号 没作用,flex布局下,css设置文本不换行时,省略号不显示的解决办法...

    大致是有一个 main 容器是 flex 布局,左边一个 logo 固定宽高,右边 content 动态宽度. a name a info Lorem ipsum dolor sit amet, co ...

  9. Python 爬虫中国知网论文过程中遇到的坑及解决办法

    假期,老师给布置了 Python 爬虫中国知网论文的任务,目前实现了登录和搜索功能,先写一下遇到的坑和解决办法吧. Python 爬虫中国知网论文过程中遇到的坑及解决办法 一. selenium 模块 ...

最新文章

  1. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...
  2. MyBatis配置项--properties
  3. PHP下解决Cannot find module (IP-MIB)的问题
  4. Vue 中的compile操作方式
  5. ppt图表图表类型起始_梅科图表
  6. 如何关闭mac烦人的更新升级提醒
  7. IDEA 启动时,报“淇℃伅”的字符
  8. java应用servlt_关于Java:将Servlet用于非Servlet应用程序
  9. 茶 —— 一片树叶的故事(茶叶的品类)
  10. COCOS CREATOR(TS)之按钮事件
  11. 残差灰色模型matlab,数学建模+灰色预测模型+MATLAB详解.doc
  12. AndroidStudio配置夜神模拟器
  13. java 如何将word 转换为ftl_使用FreeMarker导出word文档(支持导出图片)
  14. 一行代码就能随意修改网页内容
  15. Vue中Class和Style几种v-bind绑定的用法-详解案例
  16. Netgen编译出错的解决方案
  17. 一加android系统用电量大,一加6T被曝将预装Android P 这一点其它品牌比不了
  18. 关于单边账的解释及解决(收单行业)
  19. Pycharm使用tkinter
  20. PaPerPass V3.0使用教程

热门文章

  1. iOS之深入解析内存对齐的底层原理
  2. Flask 快速上手
  3. 深入理解python中的select模块
  4. Stark 组件:快速开发神器 —— 自动生成 URL
  5. rosdep update 报错: File “/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py“, line 829
  6. 【Linux系统编程】Linux进程管理
  7. python mysqldb安装_Flask干货:访问数据库——Python数据库框架MySQLPython
  8. MySQL的用户和授权
  9. 关于VS环境下制作和使用静态库和动态库
  10. 【复习资料】单片机与嵌入式系统原理及应用