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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

对于List集合去重的问题,通过学习与测试,总结出以下几点
1.在进行删除重复元素时,如果删除的是一个对象,则必须重写equals方法,并且对
要删除的元素与Object类进行比较,如果是Object子类实例则必须将Object强制转换成新创建的类
2.在与此同时,必须定义一个新的集合容器,用来放与原来集合不相同的元素,然后返回这个新集合
3.值得注意,前两条是List集合去重都必须操作的。以前一直以为只有ArrayList集合才是这样处理,但经过试验后Vector、LinkedList集合去重用同样的方法处理。
以下是具体的代码实现:
  1. package com.cg.test;

  2. import java.util.ArrayList;
  3. import java.util.Iterator;

  4. public class ArrayListDemo {
  5.         public static void main(String[] args) {
  6.                 ArrayList arrayList=new ArrayList();
  7.                 arrayList=showArrayList(arrayList);
  8.                 ArrayList arrayList1=shownewArrayList(arrayList);
  9.                 Iterator it=arrayList1.iterator();
  10.                 while(it.hasNext()){
  11.                         Person1 person=(Person1)it.next();
  12.                         System.out.println(person.name+"::"+person.age);
  13.                 }
  14.         }
  15.         private static ArrayList showArrayList(ArrayList arrayList) {
  16.                 arrayList=new ArrayList();
  17.                 arrayList.add(new Person1("张三",20));
  18.                 arrayList.add(new Person1("李四",22));
  19.                 arrayList.add(new Person1("王五",23));
  20.                 arrayList.add(new Person1("赵六",24));
  21.                 arrayList.add(new Person1("赵六",24));
  22.                 return arrayList;
  23.         }
  24.         public static ArrayList shownewArrayList(ArrayList arrayList){
  25.                 ArrayList newArrayList=new ArrayList();
  26.                 Iterator iterator=arrayList.iterator();
  27.                 while(iterator.hasNext()){
  28.                         Object object=iterator.next();
  29.                         if(!newArrayList.contains(object)){
  30.                                 newArrayList.add(object);                               
  31.                         }               
  32.                 }
  33.                 return newArrayList;
  34.         }
  35. }
  36. class Person1{
  37.         public String name;
  38.         public int age;
  39.         Person1(String name,int age){
  40.                 this.name=name;
  41.                 this.age=age;
  42.         }
  43.         /*public int hashCode(){
  44.                 return name.hashCode()+age*27;
  45.         }*/
  46.         public boolean equals(Object object){
  47.                 if(!(object instanceof Person1))
  48.                         return false;
  49.                 Person1 person=(Person1)object;
  50.                 return this.name.equals(person.name)&&this.age==person.age;
  51.         }
  52. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马