zoukankan      html  css  js  c++  java
  • 如何去除List中的重复值?

    今天碰到一个问题,已经有一个List<string>,里面有重复值,希望将重复值去掉,同时不能破坏现有的顺序。

     

    感谢 http://bbs.csdn.net/topics/390247210。

     

    供自己参考:

     

    1、通过循环进行删除

     

     

    复制代码

    public static void removeDuplicate(List list) {

    for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {

    for ( int j = list.size() - 1 ; j > i; j -- ) {

    if (list.get(j).equals(list.get(i))) {

    list.remove(j);

    }

    }

    }

    System.out.println(list);

    }

     

    复制代码

     

    2、通过HashSet删除

     

    public static void removeDuplicate(List list) {

    HashSet h = new HashSet(list);

    list.clear();

    list.addAll(h);

    System.out.println(list);

    }

     

    3、删除重复元素,并保持顺序。(我没试)

     

     

    复制代码

    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);

    }

     

    复制代码

     

    4、定义一个方法,调用即可。

     

     

    复制代码

    publi List<String> getNewList(List<String> li){

    List<String> list = new ArrayList<String>();

    for(int i=0; i<li.size(); i++){

    String str = li.get(i); //获取传入集合对象的每一个元素

    if(!list.contains(str)){ //查看新集合中是否有指定的元素,如果没有则加入

    list.add(str);

    }

    }

    return list; //返回集合

    }

     

    public class Test{

    public static void main(String[] args){

    ArrayList<String> arr = new ArrayList<String>();

    arr.add("aaa");

    arr.add("bbb");

    arr.add("aaa");

    arr.add("ccc");

    arr = getNewList(arr); //方法去重

    System.out.println(arr);

    }

    }

  • 相关阅读:
    MySQL存储引擎InnoDB与Myisam的六大区别
    PHP+mysql防止SQL注入
    HTTPS 的实现原理
    如何保障 API 接口的安全性?
    使用Merge存储引擎实现MySQL分表
    彻底搞懂Reactor模型和Proactor模型
    REDIS集群脑裂以及解决方案
    linux shell文件合并 去重 分割
    python fnmatch & glob
    sed初理多行合并+sed之G、H、g、h使用+sed n/N使用说明
  • 原文地址:https://www.cnblogs.com/qq260250932/p/5365035.html
Copyright © 2011-2022 走看看