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

  1. package com.itheima;

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

  4. public class Demo2 {
  5.         public static void main(String[] args){
  6.                
  7.                 //定义一个ArrayList集合并存入人对象
  8.                 ArrayList al = new ArrayList();
  9.                 al.add(new Person("zhangsan",10));
  10.                 al.add(new Person("lisi",10));
  11.                 al.add(new Person("zhangsan",10));
  12.                 al.add(new Person("wangwu",10));
  13.                 System.out.println("原集合是:"+al);
  14.                
  15.                 //去除重复的人对象
  16.                 al= method(al);
  17.                 System.out.println("去除重复对象后,集合是:"+al);
  18.         }
  19.        
  20.         //定义一个去除重复人对象的方法method
  21.         public static ArrayList method(ArrayList al){
  22.                 ArrayList newal = new ArrayList();//定义一个新集合用于存放不重复元素
  23.                 Iterator it = al.iterator();//用迭代器遍历集合al
  24.                 while(it.hasNext()){
  25.                         Object obj = it.next();
  26.                         if(!newal.contains(obj))//遍历到的元素未在newal中出现过就将其放进去
  27.                                 newal.add(obj);
  28.                 }
  29.                 return newal;
  30.         }
  31. }

  32. //定义一个用于描述人对象的类
  33. class Person{
  34.         private String name;
  35.         private int age;
  36.     Person(String name,int age){
  37.                 this.name = name;
  38.                 this.age = age;
  39.         }
  40.     public String getName(){
  41.             return name;
  42.     }
  43.     public int getAge(){
  44.             return age;
  45.     }
  46.    
  47.     //复写了Object类中的equals方法,不再比较地址值,按照自己的方式去比较
  48.     public boolean equals(Object obj){
  49.             if(!(obj instanceof Person))
  50.                     return false;
  51.             Person p = (Person)obj;
  52.             return this.name.equals(p.name)&&this.age==p.age;
  53.     }
  54. }
复制代码


我将method方法单独抽取到一个类中,代码如下:
  1. /*
  2. *需求:自定义人对象,将其存入ArrayList并去除重复对象  
  3. *思路:
  4. *1.构造一个用于描述人的类
  5. *2.将人对象存入集合
  6. *3.对集合进行去除重复人对象操作
  7. */
  8. package com.itheima;

  9. import java.util.ArrayList;
  10. import java.util.Iterator;

  11. public class Demo2 {
  12.         public static void main(String[] args){
  13.                
  14.                 //定义一个ArrayList集合并存入人对象
  15.                 ArrayList al = new ArrayList();
  16.                 al.add(new Person("zhangsan",10));
  17.                 al.add(new Person("lisi",10));
  18.                 al.add(new Person("zhangsan",10));
  19.                 al.add(new Person("wangwu",10));
  20.                 System.out.println("原集合是:"+al);
  21.                
  22.                 //去除重复的人对象
  23.                 al= new Gongju().method(al);
  24.                 System.out.println("去除重复对象后,集合是:"+al);
  25.         }
  26.        
  27.        
  28. }

  29. //定义一个用于描述人对象的类
  30. class Person{
  31.         private String name;
  32.         private int age;
  33.     Person(String name,int age){
  34.                 this.name = name;
  35.                 this.age = age;
  36.         }
  37.     public String getName(){
  38.             return name;
  39.     }
  40.     public int getAge(){
  41.             return age;
  42.     }
  43.    
  44.     //复写了Object类中的equals方法,不再比较地址值,按照自己的方式去比较
  45.     public boolean equals(Object obj){
  46.             if(!(obj instanceof Person))
  47.                     return false;
  48.             Person p = (Person)obj;
  49.             return this.name.equals(p.name)&&this.age==p.age;
  50.     }
  51. }
  52. class Gongju{
  53.        
  54.         //定义一个去除重复人对象的方法method
  55.                 public static ArrayList method(ArrayList al){
  56.                         ArrayList newal = new ArrayList();//定义一个新集合用于存放不重复元素
  57.                         Iterator it = al.iterator();//用迭代器遍历集合al
  58.                         while(it.hasNext()){
  59.                                 Object obj = it.next();
  60.                                 if(!newal.contains(obj))//遍历到的元素未在newal中出现过就将其放进去
  61.                                         newal.add(obj);
  62.                         }
  63.                         return newal;
  64.                 }
  65. }
复制代码

求问,这两种方式有什么不同,开发的时候优先考虑哪个?
您需要登录后才可以回帖 登录 | 加入黑马