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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aohn1117 中级黑马   /  2015-11-21 23:12  /  525 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

2,把集合中存储多个Person对象,Person有姓名和年龄,找出年龄最大的
        a,定义一个Person类型的变量, 先记住第一个元素
        b,循环遍历集合
        c,用每一个元素和变量比较年龄, 如果集合中的元素比变量记住的年龄大
        d,用变量记住这个年龄较大的元素
        e,返回变量记住的元素

2 个回复

倒序浏览
请赏脸~
  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. }
复制代码
回复 使用道具 举报
楼上非常标准,以我现在的知识来看啊,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马