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

    }

    }

  • 相关阅读:
    S1 : 函数
    S1 :数组迭代方法
    S1 : 传递参数
    S1:new操作符
    S1:函数上下文
    S1:对象与JSON
    S1:运算符
    S1:变量
    代码规范的读后自己的感悟
    第三周学习总结
  • 原文地址:https://www.cnblogs.com/qq260250932/p/5365035.html
Copyright © 2011-2022 走看看