参考

方法一:需要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. EL表达式的语法介绍及九大隐含对象

    一. 简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. > 使用EL表达式来代 ...

  2. 关于VS2017提示I/O文件操作函数需要加上_s的解决办法

    最近不论是在写网络编程还是在写小项目时候,都会提示让我用加个_s的函数........ 其实加上_s这个函数是为了确保函数的安全性,确保不会有内存不够或者溢出的情况.但是每次都需要重新看一下_s函数的 ...

  3. Collections.copy

    List<String> names = Arrays.asList(new String[nameList.size()]); Collections.copy(names, nameL ...

  4. spark_运行spark-shell报错_javax.jdo.JDOFatalDataStoreException: Unable to open a test connection to the given database.

    error: # ./spark-shell Caused by: javax.jdo.JDOFatalDataStoreException: Unable to open a test connec ...

  5. 09.Spring Bean 注册 - BeanDefinitionRegistry

    基本概念 BeanDefinitionRegistry ,该类的作用主要是向注册表中注册 BeanDefinition 实例,完成 注册的过程. 它的接口定义如下: public interface ...

  6. 【Java】Java与数字证书

    Java与数字证书 Java与数字证书 证书的签发和应用 证书的内容和意义 其它 证书(Certificate,也称public-key certificate)是用某种签名算法对某些内容(比如公钥) ...

  7. Java日志格式应该是占位符还是字符串拼接

    背景 ​ 上次在群中,有个群友说自己把所有项目中,所有使用占位符打印日志的方式都修改成为了字符串拼接的方式,因为他曾经看了一篇文章,说字符串拼接的形式比占位符形式的性能更好,这个话题引起了大家的广泛讨 ...

  8. ACdream 1431——Sum vs Product——————【dfs+剪枝】

    Sum vs Product Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) S ...

  9. Docker | 第六章:构建私有仓库

    前言 上一章节,讲解了利用Dockerfile和commit进行自定义镜像的构建.大部分时候,公司运维或者实施部门在构建了符合公司业务的镜像环境后,一般上不会上传到公共资源库的.这就需要自己搭建一个私 ...

  10. 使用PM2守护Node.js应用

    PM2简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控.自动重启.负载均衡等,而且使用非常简单.   安装PM2 $ npm install pm2 -g ...