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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

序号  姓名    年龄    身高
01    张三    10      170
02    李四    20      175
03    马五    20      175
04    王六    20      175
05    孙七    23      180
06    陈八    23      180
07    赵九    30      160
08    吴十    30      160
....

如何只通过年龄与身高去除重复的元素。
而姓名不管,只保留第一次出现的名字
去除重复后变成如下数组

序号  姓名    年龄    身高
01    张三    10      170
02    李四    20      175
03    孙七    23      180
04    赵九    30      160
....

这个问题困扰我很久,请好人帮忙解决一下。最好给出代码例子。
用数组或list做出来都可以。最好不要用map 或set类型的集合,小弟能力有限
这里高人多我想不会令我失望,小弟万分感谢 !!!!

点评

亲,如果实在是问题太多,并需要马上发表 请整理在一个帖子内发表,谢谢合作  发表于 2013-11-23 16:57
FFF
请不要短时间内发太多的帖子!  发表于 2013-11-23 16:43

4 个回复

倒序浏览
思路就是这样的,没考虑太多,可能写的不够严谨,你体会一下就行了!还有Person类(JavaBean)就不给你了,你自己创建吧!
  1.         public static void main(String args[]) throws Exception {
  2.                 List<Person> list = new LinkedList<Person>();
  3.                 list.add(new Person("张三",10,170));
  4.                 list.add(new Person("李四",20,175));
  5.                 list.add(new Person("马五",20,175));
  6.                 list.add(new Person("王六",20,175));
  7.                 list.add(new Person("孙七",23,180));
  8.                 list.add(new Person("陈八",23,180));
  9.                 list.add(new Person("赵九",30,160));
  10.                 list.add(new Person("吴十",30,160));
  11.                
  12.                 for (int i = 0; i < list.size()-1; i++) {         //遍历集合
  13.                         //i元素的年龄与i+1元素的年龄相等时,删除i+1元素
  14.                         if(list.get(i).getAge()==list.get(i+1).getAge()) {
  15.                                 list.remove(i+1);
  16.                                 i--;                //删除时后面的元素向前移动, 所以要--
  17.                         }else {
  18.                                 //当年龄不等时,判断身高
  19.                                 if(list.get(i).getHeight()==list.get(i+1).getHeight()) {
  20.                                         list.remove(i+1);
  21.                                         i--;
  22.                                 }
  23.                         }
  24.                 }
  25.                
  26.                 for (Person person : list) {        //迭代打印集合各元素
  27.                         System.out.println(person);
  28.                 }
  29.         }
复制代码
回复 使用道具 举报
亲,给你一个例子哦:
  1. import java.util.*;
  2. public class ListDemo {

  3.         public static void main(String[] args) {
  4.                 // TODO Auto-generated method stub
  5.                 ArrayList<Person> list = new ArrayList<Person>();
  6.                 list.add(new Person("01","张三",10,170));
  7.                 list.add(new Person("02","李四",20,175));
  8.                 list.add(new Person("03","马五",20,175));
  9.                 list.add(new Person("04","王六",20,175));
  10.                 list.add(new Person("05","孙七",23,180));
  11.                 list.add(new Person("06","陈八",23,180));
  12.                 list.add(new Person("07","赵九",30,160));
  13.                 list.add(new Person("08","吴十",30,160));
  14.                 list = singleElement(list);
  15.                 Iterator<Person> it= list.iterator();
  16.                 while(it.hasNext())
  17.                 {
  18.                         Person p = it.next();
  19.                         System.out.println(p.getid() + " " + p.getName() + " " + p.getAge() + " " + p.getHeight() );
  20.                        
  21.                 }
  22.                
  23.         }
  24.         public static ArrayList singleElement(ArrayList<Person> al)
  25.         {
  26.                 ArrayList<Person> newAl = new ArrayList<Person>();
  27.                 Iterator<Person> it = al.iterator();
  28.                 while(it.hasNext())
  29.                 {
  30.                         Person p = it.next();
  31.                         if(!newAl.contains(p))
  32.                                 newAl.add(p);
  33.                 }
  34.                 return newAl;
  35.         }

  36. }
  37. class Person
  38. {
  39.         private String id;
  40.         private String name;
  41.     private int age;
  42.         private int height;
  43.         Person(String id,String name,int age,int height)
  44.         {
  45.                 this.id = id;
  46.                 this.name = name;
  47.                 this.age = age;
  48.                 this.height = height;
  49.         }
  50.         public String getid()
  51.         {
  52.                 return id;
  53.         }
  54.         public String getName()
  55.         {
  56.                 return name;
  57.         }
  58.         public int getAge()
  59.         {
  60.                 return age;
  61.         }
  62.         public int getHeight()
  63.         {
  64.                 return height;
  65.         }
  66.         public boolean equals(Object obj)
  67.         {
  68.                 if(!(obj instanceof Person))
  69.                         return false;
  70.                 Person p = (Person)obj;
  71.                 return this.age == p.age && this.height == p.height;

  72.         }
  73.        
  74. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马