参考

方法一:需要2个容器,1个迭代去重,1个作为结果容器。

此方法其实想法比较简单也是正常思路:

package com.yonyou.test;

import java.util.List;
import java.util.Vector; public class Test{
public static void main(String[] args) {
List<String> vector=new Vector<String>();
vector.add("Hello");
vector.add("world");
vector.add("Hello"); System.out.println("去重之前vector中的集合为:"+vector.toString()); List<String> newVector=new Vector<String>();
for(String str:vector)
{
if(!newVector.contains(str))
newVector.add(str);
} System.out.println("去重之后vector中的集合为:"+newVector.toString()); }
}
方法二:
对于方法一而言,这也许是一个小窍门。利用的是Set集合中不允许出现重复的元素。
package com.yonyou.test;

import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.Vector; public class Test{
public static void main(String[] args) {
List<String> vector=new Vector<String>(); //这里的vector可以换成ArrayList或者LinkedList,效果都一样
vector.add("Hello");
vector.add("world");
vector.add("Hello"); System.out.println("去重之前vector中的集合为:"+vector.toString()); Set<String> set=new HashSet<String>(vector);
vector=new Vector<String>(set); System.out.println("去重之后vector中的集合为:"+vector.toString());
}
}
 

方法三:参考

当需要去重的东西是对象,而不是简单类型时,就需要用到如下的高级操作了。

很棒的方法,比迭代然后 contains 快捷高效。

/**
* 将列表中重复的用户移除,重复指的是name相同
*
* @param userList
* @return
*/
public static ArrayList<People> removeDuplicteUsers(ArrayList<People> userList) {
Set<People> s = new TreeSet<People>(new Comparator<People>() {
@Override
public int compare(People o1, People o2) {
return o1.getName().compareTo(o2.getName());  //定义People对象的比较函数
}
});
s.addAll(userList);           //利用 set 的比较函数,去除重复用户
return new ArrayList<People>(s);    //再转换回List
}

Java代码工具箱_用Set给List/Vector去重的更多相关文章

  1. Java代码工具箱之控制台输出重定向_控制台输出到文件

    1. 情形:有时候控制台输出太多,在MyEclipse显示不全. 2. 说明:本代码只会重定向 system.out 的内容, error及其它不受代码影响.其它应该类似. //自定导入必要库 //然 ...

  2. Java代码工具箱之超出游标最大数

    1. Java大量写入oracle时容易出现此错.经过此错,也触动自己要深刻理解 java 的 prepareStatement 等对象,及数据库的连接与释放. 2. 原因:经常会出现在 for 循环 ...

  3. Java代码规范_插件_阿里java开发手册

    给大家分享一个阿里巴巴的java开发规范,在日常自动化工作中我们可以参考一下,特别是用java进行coding的同学. 而且还可以利用相应的插件进行代码扫描检测,感兴趣的们可以马上应用到自动化中来. ...

  4. Java代码工具箱之链接Oracle

    1. 需要oracle的 odbc  jar包 2. 代码 3. 注意:ps对象和statement对象最好用完立即释放,尤其是读写数据库代码出现在 for 循环语句中时. 否则会出现游标不够的情况, ...

  5. Java代码工具箱之解析单行单列简单Excel

    1. 使用开源工具 jxl.jar 2. 功能:解析常规Excel.xls格式测试可行,xlsx未测试.Excel测试格式为常规类似table这种简单布局文件.第一行为标题,后面行为内容.代码 可正确 ...

  6. Java面向对象理解_代码块_继承_多态_抽象_接口

    面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生 ...

  7. Jmeter4.0---- jmeter中写入java代码_简单了解(15)

    1.说明 BeanShell:是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型.命令.闭包等通用脚本 ...

  8. 使用 Google Guava 美化你的 Java 代码

    文章转载自:http://my.oschina.net/leejun2005/blog/172328 目录:[ - ] 1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMP ...

  9. java代码的初始化过程研究

        刚刚在ITeye上看到一篇关于java代码初始化的文章,看到代码我试着推理了下结果,虽然是大学时代学的知识了,没想到还能做对.(看来自己大学时掌握的基础还算不错,(*^__^*) 嘻嘻……)但 ...

随机推荐

  1. 乐字节Java8核心特性之Optional类

    大家好啊,上次小乐给大家介绍了Java8最最重要的一个特性——Stream流,点击可以回顾哦. Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在 ...

  2. 启动windows .net 3.5 功能

    近期给window 2008 版本安装loadrunner ,发现还需要用户自己打开windows 的 .net 3.5 功能,所以在这里记录一下步骤 激活

  3. EOS区块同步源码分析之见证者

    调了两天,终于把EOS的出块和DPOS共识机制的代码看了个大概,下面做个小总结.因为这一块是EOS比较核心的代码块,稍微复杂些,如果有理解错误之处,请大家见识并帮我指出来,我也会有可能随时改写这里的内 ...

  4. SQL语法:MySQL系列之四

    一.SQL语言的简介和规范 ​ 是一种特定目的程序语言,用于管理关系数据库管理系统(RDBMS),或在关系流数据管理系统(RDSMS)中进行流处理. 20世纪70年代,IBM开发出SQL,用于DB2 ...

  5. CSS(二)关于position

    position有五种取值 前排说一个问题,2017-10-8日更新: transform会影响定位,导致fixed降级为absolute.无论是transform:translate(),scale ...

  6. CF213E Two Permutations 线段树维护哈希值

    当初竟然看成子串了$qwq$,不过老师的$ppt$也错了$qwq$ 由于子序列一定是的排列,所以考虑插入$1$到$m$到$n-m+1$到$n$; 如何判断呢?可以用哈希$qwq$: 我们用线段树维护哈 ...

  7. SerializeUtil

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInpu ...

  8. 记录一个linux下批处理的代码

    DATA_DIR=/home/liupan/.navinsight/data/dataset_rec SHELL_DIR=/home/liupan/workspace/nvi_postprocessi ...

  9. (转)Linux最常用指令及快捷键 Linux学习笔记

    Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ...

  10. Linux Mint下的conky配置

    最近闲来无事,想把自己的Linux Mint弄的再炫酷点,在桌面上显示一些信息,因为我已经装了Cairo-dock,现在就差这个了,下面简单说下整个流程,首先你得安装conky, sudo apt-g ...