Java中如何去除List中的重复的值?
如下:
package com.test;
import java.util.*;
public class Test {
    /**
     AAAA AAAA BBBB BBBB CCCC CCCC CCCC CCCC
     */
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("AAAA");
        list.add("AAAA");
        list.add("AAAA");
        list.add("BBBB");
        list.add("BBBB");
        list.add("BBBB");
        list.add("CCCC");
        list.add("CCCC");
        list.add("CCCC");
        list.add("DDDD");
        new Test().removeDuplicateWithOrder(list);
//      System.out.println(list);
    }
    // 删除ArrayList中重复元素
    public static void removeDuplicate(List list) {
        for (int i = ; i < list.size() - ; i++) {
            for (int j = list.size() - ; j > i; j--) {
                if (list.get(j).equals(list.get(i))) {
                    list.remove(j);
                }
            }
        }
        System.out.println(list);
    }
    // 方法二:通过HashSet剔除
    // 删除ArrayList中重复元素,add进去顺序就变了不考虑顺序的话可以使用
    public static void removeDuplicate1(List list) {
        HashSet h = new HashSet(list);
        list.clear();
        list.addAll(h);
        System.out.println(list);
    }
    // 方法三: 删除ArrayList中重复元素,保持顺序
    // 删除ArrayList中重复元素,保持顺序
    public static void removeDuplicateWithOrder(List list) {
        Set set = new HashSet();
        List newList = new ArrayList();
        for (Iterator iter = list.iterator(); iter.hasNext();) {
            Object element = iter.next();
            if (set.add(element))
                newList.add(element);
        }
        list.clear();
        list.addAll(newList);
        System.out.println(" remove duplicate " + list);
    }
}
还有两种较简单的,思想都是一样的,而且顺序也会保持的:
public class Test {
    public static void main(String[] args) {
        ArrayList<String> arr = new ArrayList<String>();
        arr.add("aaa");
        arr.add("bbb");
        arr.add("bbb");
        arr.add("aaa");
        arr.add("ccc");
        arr.add("ccc");
        List<String> newList = getNewList(arr);
        System.out.println(newList);
//        getlist(arr);
    }
    public static  List <String> getNewList(List<String> li){
        List<String> list = new ArrayList<String>();//创建新的list
        for(int i=; i<li.size(); i++){
            String str = li.get(i);  //获取传入集合对象的每一个元素
            if(!list.contains(str)){   //查看新集合中是否有指定的元素,如果没有则加入
                list.add(str);
            }
        }
        return list;  //返回集合
    }
    public static void getlist(List<String> arr) {
        ArrayList<String> result = new ArrayList<String>();
        for (Object s : arr) {
            if (Collections.frequency(result, s)<)
                result.add((String) s);
        }
        System.out.println(result);
    }
}
针对方法getList的小说明:
frequency(Collection<?>, Object) 方法用于获取所指定元素集合collection等于指定对象object中的数量。
if (Collections.frequency(result, s)<1)
result.add((String) s);
的意思是如果对象s在集合result中出现的次数小于1(无s元素),就将它添加进入集合result;
end;
Java中如何去除List中的重复的值?的更多相关文章
- 不能在具有唯一索引“IX_******”的对象“dbo.****”中插入重复键的行。重复键值为 (110, 372000, 2)。
		当尝试插入数据,或者更新某个表的时候出现 不能在具有唯一索引“IX_******”的对象“dbo.****”中插入重复键的行.重复键值为 (110, 372000, 2). 遇到这个问题的时候,请找到 ... 
- python中如何去除列表中重复元素?
		方法一: 用内置函数set: list1 = [1, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9] list2 = list(set(list1)) print(list2) ... 
- JAVA 去除实体中类型为string的属性值中的空格
		前端传入的参数实体中,有时候会出现传入了一空格,导致操作失败,这时就可以利用java反射机制去除实体中类型为sting的属性值中的空格. java代码示例: package com.spyang.ut ... 
- list 去掉重复的值
		去除List列表中重复值(3种解决方法)public static void main(String[] args) { String[] ar = { "dd", "c ... 
- 遍历 Input检测是否有重复的值
		在项目中需要遍历某个Table中的Input输入是否有重复的值,为此基于Jquery写了两种实现方式(关键在于取值方式): 方法1: function CheckGoodsNo() { var ish ... 
- [转]java去除List中重复的元素
		java去除List中重复的元素 如果用Set ,倘若list里边的元素不是基本数据类型而是对象, 那么请覆写Object的boolean equals(Object obj) 和int ... 
- JAVA案例练习: 去除ArrayList中重复的字符串(字符串内容相同),去除重复的对象
		package com.yqw.list; import java.util.ArrayList;import java.util.Iterator; public class Demo_ArrayL ... 
- ArrayList去除集合中字符串的重复值
		package com.heima.list; import java.util.ArrayList; import java.util.Iterator; import java.util.List ... 
- 关于iOS去除数组中重复数据的几种方法
		关于iOS去除数组中重复数据的几种方法 在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ... 
随机推荐
- Android 判断屏幕方向一个大坑
			正常的判断屏幕方向的代码: /** 获取屏幕是否是竖屏 * @return */ @SuppressLint("SwitchIntDef") public boolean isSc ... 
- javascript类式继承模式#2——借用构造函数
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- C/C++学习笔记--指针(Pointer)
			定义指针 一般类型: type_name * var_name; 例如: int _var = 1555; int * _var_addr=&_var; 一般类型数组类:type_name ... 
- 性能测试之siege
			一.siege介绍 Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数 ... 
- HTML5标签学习笔记
			<!DOCTYPE html> <html lang="zh-cn"> <head> <meta http-equiv="con ... 
- mac虚拟机上(centos系统)怎样实现共享本机文件
			首先加载vboxadditions,可以从https://download.virtualbox.org/virtualbox/下载,记得一定要跟virtualBox版本对应 然后打开virtualb ... 
- jenkins shell脚本构建项目--留
			1.echo `date` "doing compling . . . " if [ "$RELEASE" == "false" ]; ... 
- disable-network-config
			network: {config: disabled} 
- 01、dos命令行的常用命令
			cd 进入指定目录cd.. 返回上一级目录cd\ 退回盘符根目录dir 列出当前目录下的文件以及文件夹md 创建目录rd 删除目录del 删除文件cls ... 
- linux服务进程管理
			1.查看linux占用内存/CPU最多的进程 查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 或者top (然后按下M,注意大写) 查使用CPU最多的1 ... 
