为了账号安全,请及时绑定邮箱和手机立即绑定

如何去除重复内容?

本课中的list中会存储重复的内容,如何较好的去除重复的内容?

正在回答

1 回答

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

1 回复 有任何疑惑可以回复我~
#1

QQQJ君4072683 提问者

感谢大神
2016-10-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如何去除重复内容?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信