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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.util.*;

  2. /* 练习: 将自定义对象作为元素存到ArrayList集合中,并去除重复元素.
  3.         思路:
  4.                 1,对人描述,将数据封装进人对象;
  5.                 2,定义容器,将人存入;
  6.                 3,取出.
  7. */
  8. class ArrayListTest2 {
  9.         public static void main(String[] args) {

  10.                 ArrayList al = new ArrayList();
  11.                
  12.                 //al.add(new Test());
  13.                
  14.                 al.add(new Person("lisi01",30));
  15.                 al.add(new Person("lisi02",32));
  16.                 al.add(new Person("lisi02",32));
  17.                 al.add(new Person("lisi03",33));
  18.                 al.add(new Person("lisi04",34));
  19.                 al.add(new Person("lisi05",35));
  20.                
  21.                
  22.                 sop("remove 03: " + al.remove(new Person("lisi03",33)));
  23.                 sop(al);
  24.                

  25.                 al = singleElement(al);
  26.                
  27.                 for(Iterator it = al.iterator(); it.hasNext(); ) {
  28.                
  29.                         Person p = (Person)it.next();
  30.                         sop(p.getName()+"::"+p.getAge());
  31.                 }
  32.                
  33.         }
  34.        
  35.         private static ArrayList singleElement(ArrayList al) {
  36.        
  37.                 ArrayList newAl = new ArrayList();
  38.                 for(Iterator it = al.iterator(); it.hasNext(); ) {
  39.                
  40.                         Object obj = it.next();
  41.                         if(!newAl.contains(obj))
  42.                                 newAl.add(obj);
  43.                 }
  44.                 return newAl;
  45.         }
  46.         public static void sop(Object obj) {
  47.        
  48.                 System.out.println(obj);
  49.         }
  50. }

  51. class Person {
  52.        
  53.         private String name;
  54.         private int age;
  55.        
  56.         Person(String name, int age) {
  57.        
  58.                 this.name = name;
  59.                 this.age = age;
  60.         }
  61.        
  62.         public boolean equals(Object obj) {
  63.        
  64.                 if(!(obj instanceof Person))
  65.                         return false;
  66.                        
  67.                 Person p = (Person)obj;
  68.                
  69.                 return this.name.equals(p.name) && this.age == p.age;
  70.         }
  71.        
  72.         public String getName() {
  73.        
  74.                 return name;
  75.         }
  76.        
  77.         public int getAge() {
  78.        
  79.                 return age;
  80.         }
  81.        
  82.        
  83. }
复制代码

9 个回复

倒序浏览
好吧,多多练习
回复 使用道具 举报
面试题。有过。。。。
回复 使用道具 举报
T-l-H、小生 发表于 2014-9-21 23:04
面试题。有过。。。。

还真的被说中啦...
回复 使用道具 举报
noiary 发表于 2014-9-21 23:24
还真的被说中啦...

呵呵,因为我亲眼见过我朋友面试啊。。。
回复 使用道具 举报
集合里好些这样的题 加油
回复 使用道具 举报
言钟钟 来自手机 中级黑马 2014-9-22 08:08:50
7#
收藏啊!  我也要敲下!
回复 使用道具 举报
happyto1021 来自手机 中级黑马 2014-9-22 08:34:47
8#
马克。。。
回复 使用道具 举报
noiary 高级黑马 2014-9-22 13:52:02
9#
第二遍

  1. import java.util.*;

  2. /* 练习: 将自定义对象作为元素存到ArrayList集合中,并去除重复元素.
  3.         思路:
  4.                 1,对人描述,将数据封装进人对象;
  5.                 2,定义容器,将人存入;
  6.                 3,取出.
  7. */
  8. public class ArrayListTest {

  9.         public static void main(String[] args) {
  10.        
  11.                 ArrayList al = new ArrayList();
  12.                
  13.                 al.add(new Person("Shawn01",31));
  14.                 al.add(new Person("Shawn02",32));
  15.                 al.add(new Person("Shawn02",32));
  16.                 al.add(new Person("Shawn03",33));
  17.                 al.add(new Person("Shawn04",34));
  18.                 al.add(new Person("Shawn04",34));
  19.                 al.add(new Person("Shawn05",35));
  20.                
  21.                 al = singleElement(al);
  22.                
  23.                 for(Iterator it = al.iterator(); it.hasNext(); ) {
  24.                
  25.                         Person p = (Person)it.next();//避免iterator指针跳跃,同时强转Object为Person
  26.                         System.out.println("name=" + p.getName() + ", age=" + p.getAge());
  27.                 }
  28.                
  29.        
  30.         }
  31.        
  32.         private static ArrayList singleElement(ArrayList al) {
  33.        
  34.                 ArrayList newAl = new ArrayList();
  35.                
  36.                 for(Iterator it = al.iterator(); it.hasNext(); ) {
  37.                
  38.                         Object o = it.next();
  39.                        
  40.                         if(!newAl.contains(o)) {
  41.                        
  42.                                 newAl.add(o);
  43.                         }
  44.                 }
  45.                 return newAl;
  46.         }
  47. }

  48. class Person {

  49.         private String name;
  50.         private int age;
  51.        
  52.         public Person(String name, int age) {
  53.        
  54.                 this.name = name;
  55.                 this.age = age;
  56.         }
  57.         /*
  58.         public void setName(String name) {
  59.        
  60.                 this.name = name;
  61.         }
  62.        
  63.         public void setAge(int age) {
  64.        
  65.                 this.age = age;
  66.         }
  67.         */
  68.         public String getName() {
  69.        
  70.                 return name;
  71.         }
  72.        
  73.         public int getAge() {
  74.        
  75.                 return age;
  76.         }
  77.        
  78.         public boolean equals(Object obj) {
  79.        
  80.                 if(!(obj instanceof Person))
  81.                         return false;
  82.                
  83.                 Person p = (Person)obj;
  84.                 return name.equals(p.name) && this.age == p.age;
  85.                
  86.         }
  87. }

























复制代码
回复 使用道具 举报
加油!!!!!1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马