A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我干阿衰 中级黑马   /  2015-5-10 21:07  /  343 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.ArrayList;

/*
* 需求:通过ArrayList集合存储多个字符串元素对象,并去除集合中重复的元素对象
*                
*/
public class ArrayListTest {
        public static void main(String[] args) {
                ArrayList list = new ArrayList();
               
                //添加元素
                list.add("范冰冰");
                list.add("李晨");
                list.add("李晨");
                list.add("李晨");
                list.add("范冰冰");
               
                //通过选择排序算法,实现集合中去除重复元素
                for (int i = 0; i < list.size()-1; i++) {
                        for (int j = i+1; j < list.size(); j++) {
                                //list.get(i)  与 list.get(j)
                                if (list.get(i).equals(list.get(j))) {
                                        list.remove(j);
                                        //j--;没有j--的时候为什么重复去不了
                                }
                        }
                }
               
                System.out.println(list);
        }
//结果:[范冰冰, 李晨, 李晨]

5 个回复

倒序浏览
  1. import java.util.*;
  2. class        ArrayListTest1
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 ArrayList al= new ArrayList();
  7.                 al.add("java01");
  8.                 al.add("java02");
  9.                 al.add("java02");
  10.                 al.add("java03");
  11.                 al.add("java04");
  12.                 al.add("java05");
  13.                 al.add("java05");
  14.                 System.out.println("旧的"+al);
  15.                 RemoveMore rm = new RemoveMore();
  16.                 Object s =rm.Remove(al);
  17.                 System.out.println("新的"+s);
  18.         }
  19. }
  20. class RemoveMore
  21. {
  22.         private ArrayList arraylist ;
  23.         RemoveMore()
  24.         {
  25.                 arraylist = new ArrayList();
  26.         }
  27.         public ArrayList Remove(ArrayList al)
  28.         {
  29.                
  30.                 ListIterator li =al.listIterator();
  31.                 while(li.hasNext())
  32.                 {
  33.                         Object obj=li.next();//此循环next最好就一次
  34.                         if(!arraylist.contains(obj))
  35.                                 arraylist.add(obj);
  36.                 }
  37.                 /*
  38.                 for(ListIterator li = al.listIterator();li.hasNext();)
  39.                 {
  40.                         Object obj = li.next();
  41.                         if(!arraylist.contains(obj))
  42.                                 arraylist.add(obj);
  43.                 }
  44.                 */
  45.                 return arraylist;
  46.         }
  47. }
复制代码

回复 使用道具 举报
同求,知道之后告诉我啊
回复 使用道具 举报
你可以用TreeSet做转换,将ArrayList遍历存进TreeSet比较器按照条件比较,存储完毕相同的自然就去掉了,再遍历TreeSet将TreeSet集合中的元素重新存进ArrayList
回复 使用道具 举报
如果没错的话 应该是size变了
当判断第一个李晨时  跟第二个李晨比较  第二个被去掉   数组长度变成了3(最后一个范冰冰已经干掉了)
这个时候j++ 就是3了  循环不执行

老毕视频里用的是 新建一个list集合  然后用contains 去判断 没有的话 就往里面添加
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马