对list集合中的重复值进行处理,大部分是采用两种方法,

  一种是用遍历list集合判断后赋给另一个list集合,

  另一种是用赋给set集合再返回给list集合。

方法1:set集合去重,不打乱顺序

  1. List<String> list = new ArrayList<String>();
  2. list.add("aaa");
  3. list.add("bbb");
  4. list.add("aaa");
  5. list.add("aba");
  6. list.add("aaa");
  7.  
  8. //set集合去重,不打乱顺序
  9. Set<String> set = new HashSet<String>();
  10. List<String> newList = new ArrayList<String>();
  11. for (String cd : list) {
  12. if (set.add(cd)) {
  13. newList.add(cd);
  14. }
  15. }
  16. System.out.println("去重后的集合: " + newList);

方法2:遍历后判断赋给另一个list集合

  1. //遍历后判断赋给另一个list集合
  2. List<String> newList = new ArrayList<String>();
  3. for (String cd : list) {
  4. if (!newList.contains(cd)) {
  5. newList.add(cd);
  6. }
  7. }
  8. System.out.println("去重后的集合: " + newList);

方法3:set去重

  1. //set去重
  2. Set<String> set = new HashSet<String>();
  3. List<String> newList = new ArrayList<String>();
  4. set.addAll(list);
  5. newList.addAll(set);
  6. System.out.println("去重后的集合: " + newList);

方法4:set去重(代码缩减为一行)

  1. //set去重(缩减为一行)
  2. List<String> newList = new ArrayList<String>(new HashSet<String>(list));
  3. System.out.println("去重后的集合: " + newList);

方法5:去重并且按照自然顺序排列

  1. //去重并且按照自然顺序排列
  2. List<String> newList = new ArrayList<String>(new TreeSet<String>(list));
  3. System.out.println("去重后的集合: " + newList);

文章来源:http://blog.csdn.net/cs6704/article/details/50158373

java ArrayList去重的更多相关文章

  1. Intent.putExtra()传递Object对象或者ArrayList<Object> (转)

    Intent传递基本类型相信大家都十分熟悉,如何传递Object对象或者ArrayList<Object>对象呢? 可以通过: (1)public Intent putExtra (Str ...

  2. Java的Object对象

    Object对象是除了基础对象之外,所有的对象都需要继承的父对象,包括数组也继承了Object Object里面的关键函数罗列如下: clone();调用该函数需要实现 Cloneable,否则会抛出 ...

  3. Java ArrayList、Vector和LinkedList等的差别与用法(转)

    Java ArrayList.Vector和LinkedList等的差别与用法(转) ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都 ...

  4. Using QueryRunner to insert ArrayList<Object[]>

    使用QueryRunner 结合c3p0进行数据库操作时候, 需求:list<bean>进行插入数据库中,但是QueryRunner 仅仅支持batch():批处理: Object[][] ...

  5. 浅析 java ArrayList

    浅析 java ArrayList 简介 容器是java提供的一些列的数据结构,也可以叫语法糖.容器就是用来装在其他类型数据的数据结构. ArrayList是数组列表所以他继承了数组的优缺点.同时他也 ...

  6. Java ArrayList中对象的排序 (Comparable VS Comparator)

    我们通常使用Collections.sort()方法来对一个简单的数据列表排序.但是当ArrayList是由自定义对象组成的,就需要使用comparable或者comparator接口了.在使用这两者 ...

  7. Java ArrayList源码剖析

    转自: Java ArrayList源码剖析 总体介绍 ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现.除该类未实现同步外 ...

  8. Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null

    1.Android Studio报错 Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' ...

  9. Java ArrayList 源代码分析

    Java ArrayList 之前曾经参考 数据结构与算法这本书写过ArrayList的demo,本来以为实现起来都差不多,今天抽空看了下jdk中的ArrayList的实现,差距还是很大啊 首先看一下 ...

  10. Java ArrayList详细介绍和使用示例

    ①对ArrayList的整体认识 ArrayList是一个数组队列,相当于动态数组.与Java中的数组相比,它的容量能动态增长.它继承了AbstractList,实现了List,RandomAcces ...

随机推荐

  1. Day 5-8 自定义元类控制类的实例化行为

    __call__方法: 对象后面加括号,触发执行. 注:构造方法的执行是由创建对象触发的,即:对象 = 类名() :而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类( ...

  2. oninput和onchange的区别

    菜鸟教程: oninput事件:HTML5标准事件 当用户向<input>中尝试输入时执行JavaScript: <input type="text" oninp ...

  3. Eclipse的一个“bug”

    标题之所以打上双引号,是因为暂时不知道怎么确定. 一个 .java文件里有两个类:public Bath:Soap.它们都有一个main()方法. 从命令行单独访问任意一个类的main()方法,都没毛 ...

  4. js中获取当前项目名等

    实际上通过window.location可以获取很多跟资源路径相关的信息,需要用到的时候直接通过浏览器调试可以查看window.location的一些属性

  5. Python 命令行工具 argparse 模块使用详解

    先来介绍一把最基本的用法 import argparse parser = argparse.ArgumentParser() parser.parse_args() 在执行 parse_args() ...

  6. Postman & API

    Postman & API https://www.getpostman.com/ https://www.getpostman.com/downloads/ Postman Canary h ...

  7. div中的相对定位与绝对定位

    1.position:relative; 如果对一个元素进行相对定位,首先它将出现在它所在的位置上.然后通过设置垂直或水平位置,让这个元素“相对于”它的原始起点进行移动.(再一点,相对定位时,无论是否 ...

  8. python设计模式第九天【策略模式】

    1. 定义 对一系列算法进行封装,为所有算法定义一个抽象的算法接口,可以平滑的进行算法切换 2. 策略模式的UML图 3.代码实现 #!/usr/bin/env python #! _*_ codin ...

  9. 跨站请求伪造和cookie伪造

    CSRF(Cross-site request forgery跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站 ...

  10. vue2 mint-ui loadmore(下拉刷新)

    <template> <div class="page-loadmore"> <h1 class="page-title"> ...