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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liang926 中级黑马   /  2014-8-9 23:12  /  14495 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 liang926 于 2014-8-12 22:40 编辑

例如
/*
* 去掉ArrayList中的重复元素
*/
import java.util.*;
public class ArrayListDemo {
        public static void main(String[] args) {
                ArrayList array = new ArrayList();//创建一个集合
                /*
                 * 在集合array中加入Person的信息
                 */
                array.add(new Person("lisi1",181));
                array.add(new Person("lisi2",182));
                array.add(new Person("lisi2",182));
                array.add(new Person("lisi3",183));
                array.add(new Person("lisi3",183));
                array.add(new Person("lisi4",184));
                System.out.println(array);
                array = method(array);//调用method()方法除去array中重复的元素
                System.out.println(array);
        }

这个method的方法如何写,最后输出array中就没有了重复的元素,查过了API文档好像没有能实现该功能的方法,求指导,谢谢?
[/code]

11 个回复

倒序浏览
思想是:新建一个集合,然后遍历原集合中的东西,判断新集合中是否有,没有则添加,最后返回新集合
回复 使用道具 举报
思想和路上一样,代码如下

  1. public static ArrayList method(ArrayList array) {
  2.                 ArrayList arr = new ArrayList();
  3.                 Iterator it = array.iterator();
  4.                 while(it.hasNext()){
  5.                         Object obj = it.next();
  6.                         if(!arr.contains(obj))
  7.                                 arr.add(obj);
  8.                 }
  9.                 return arr;
  10.         }
复制代码
回复 使用道具 举报
jiangweibin2573 发表于 2014-8-10 03:09
思想和路上一样,代码如下

嗯嗯,就是这样滴
回复 使用道具 举报 1 0
答案已详细了
回复 使用道具 举报
直接用set添加就好了。
回复 使用道具 举报
这个视频里有讲的
回复 使用道具 举报
Arraylist 中有contains 和remove方法 会调用对象equals方法。题目需要Person具有equals方法。
回复 使用道具 举报
public static ArrayList<Person> method(ArrayList<Person> array) {
                ArrayList<Person> arr = new ArrayList<Person>();
                Iterator<Person> it = array.iterator();
                while(it.hasNext()){
                        Person person = it.next();
                        if(!arr.contains(person))
                                arr.add(person);
                }
                return arr;
        }
回复 使用道具 举报
jiangweibin2573 发表于 2014-8-10 03:09
思想和路上一样,代码如下

谢谢,明白了!
回复 使用道具 举报
有好多 contains   还可以用Set集合中的 把它放到一个新set集合中   set集合是不能有重复元素的,然后clear原集合,再把Set集合里面元素拿回来!
回复 使用道具 举报
再看下视频,讲解很清楚的,新建一个集合,迭代器取,contains,不细说了,你再看下视频吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马