如何在List集合中去除重复元素?

 我来答
馅喽喽喽
高粉答主

2018-01-03 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:266
采纳率:100%
帮助的人:4.5万
展开全部
  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);
    }
    }

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 = 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);
}    // 方法二:通过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);
}
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式