黑马程序员技术交流社区

标题: 作业题,不会做,请教 [打印本页]

作者: aohn1117    时间: 2015-11-21 23:12
标题: 作业题,不会做,请教
2,把集合中存储多个Person对象,Person有姓名和年龄,找出年龄最大的
        a,定义一个Person类型的变量, 先记住第一个元素
        b,循环遍历集合
        c,用每一个元素和变量比较年龄, 如果集合中的元素比变量记住的年龄大
        d,用变量记住这个年龄较大的元素
        e,返回变量记住的元素
作者: Weidan    时间: 2015-11-28 23:06
请赏脸~
  1. package cn.liweidan.test1;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Comparator;
  5. import java.util.List;

  6. /**
  7. * 把集合中存储多个Person对象,Person有姓名和年龄,找出年龄最大的
  8. *
  9. * @author Weidan
  10. *
  11. */
  12. public class Demo04 {
  13.         public static void main(String[] args) {
  14.                 //创建对象
  15.                 Person p1 = new Person("张三",20);
  16.                 Person p2 = new Person("李四",20);
  17.                 Person p3 = new Person("王五",80);
  18.                 //创建容器
  19.                 List<Person> list = new ArrayList<>();
  20.                 list.add(p1);
  21.                 list.add(p2);
  22.                 list.add(p3);
  23.                 //按照排序类进行排序 年龄最大的会被排在最后一个元素
  24.                 Collections.sort(list,new PaiXu());
  25.                 //取出最后一个元素 输出
  26.                 Person p = list.get(list.size()-1);
  27.                 System.out.println(p.toString());
  28.         }
  29. }
  30. /**
  31. * Person类 包含名字和年龄
  32. * @author Weidan
  33. *
  34. */
  35. class Person {
  36.         private String name;
  37.         private int age;

  38.         public Person() {
  39.                 // TODO Auto-generated constructor stub
  40.         }

  41.         public Person(String name, int age) {
  42.                 super();
  43.                 this.name = name;
  44.                 this.age = age;
  45.         }

  46.         public String getName() {
  47.                 return name;
  48.         }

  49.         public void setName(String name) {
  50.                 this.name = name;
  51.         }

  52.         public int getAge() {
  53.                 return age;
  54.         }

  55.         public void setAge(int age) {
  56.                 this.age = age;
  57.         }

  58.         @Override
  59.         public String toString() {
  60.                 return "Person [name=" + name + ", age=" + age + "]";
  61.         }

  62. }

  63. /**
  64. * 排序类
  65. * 先按照年龄排列再按照名字排列
  66. * @author Weidan
  67. *
  68. */
  69. class PaiXu implements Comparator<Person> {

  70.         @Override
  71.         public int compare(Person o1, Person o2) {
  72.                 if(o1.getAge()<o2.getAge()){
  73.                         return -1;
  74.                 }else if(o1.getAge()>o2.getAge()){
  75.                         return 1;
  76.                 }else{
  77.                         if(0!=o1.getName().compareTo(o2.getName())){
  78.                                 return -1;
  79.                         }else if(o1.getName().compareTo(o2.getName())>0) {
  80.                                 return 1;
  81.                         }else{
  82.                                 return 0;
  83.                         }
  84.                 }
  85.         }

  86. }
复制代码

作者: hansnowqiang    时间: 2015-11-28 23:33
楼上非常标准,以我现在的知识来看啊,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2