黑马程序员技术交流社区

标题: 三种方法->把集合中存储多个Person对象,找出年龄最大的 [打印本页]

作者: 张宇峰    时间: 2015-12-10 18:05
标题: 三种方法->把集合中存储多个Person对象,找出年龄最大的
把集合中存储多个Person对象,Person有姓名和年龄,找出年龄最大的
        a,定义一个Person类型的变量, 先记住第一个元素
        b,循环遍历集合
        c,用每一个元素和变量比较年龄, 如果集合中的元素比变量记住的年龄大
        d,用变量记住这个年龄较大的元素
        e,返回变量记住的元素
ArrayList<Person> lis2 = new ArrayList<>();
                        lis2.add(new Person("这个不是最大的",26));
                        lis2.add(new Person("这个也不是最大的",25));
                        lis2.add(new Person("这个还不是最大的",24));
                        lis2.add(new Person("这个!!",27));
                       
                Person pp = lis2.get(0);//获取初始元素值,用来做比较
                        for (Person person : lis2) {//person代表每一个元素值。
                                if (pp.getAge()<person.getAge()) {
                                        pp=person;
                                }
                        }
                        System.out.println(pp.getAge());

ArrayList<Person> lis1 = new ArrayList<>();
                lis1.add(new Person("张宇峰",99));
                lis1.add(new Person("赵润琦",27));
                lis1.add(new Person("泽东",96));
                lis1.add(new Person("请问",23));
               
                int count = 0;//记录遍历次数,相当与普通for循环的  i 记录所引值
                int index = 0;//初始索引
                for (Person person : lis1) {       
                        count++;
                        if (person.getAge()>lis1.get(index).getAge()) {               
                                index = count;
                        }
                       
                }System.out.println(lis1.get(index));

ArrayList<Person> lis1 = new ArrayList<>();
                        lis1.add(new Person("张宇峰",24));
                        lis1.add(new Person("夯老师",34));
                        lis1.add(new Person("张宇",45));
                        lis1.add(new Person("最大的",55));
                int index = 0;
                for (int i = 1; i < lis1.size(); i++) {
                        //System.out.println(lis1.get(i));
                        Person p1 = lis1.get(i);
                        Person p2 = lis1.get(index);
                        if (p1.getAge()>p2.getAge()) {
                                index = i;//将最小元素的索引赋值给index
                        }
                }
                Person p = lis1.get(index);//get(index)就是获取元素
                System.out.println("名字:"+p.getName()+"\n"+"年龄:"+p.getAge());
作者: xiedongchi15    时间: 2015-12-10 19:31
我差不多看懂了
作者: theones    时间: 2015-12-10 19:50
就是get方法,我觉得你应该用二叉树结构实现
作者: 张宇峰    时间: 2015-12-12 00:30
theones 发表于 2015-12-10 19:50
就是get方法,我觉得你应该用二叉树结构实现

才学了二叉树 ...
作者: 张宇峰    时间: 2015-12-12 00:31
xiedongchi15 发表于 2015-12-10 19:31
我差不多看懂了


作者: ZZT    时间: 2016-4-21 10:37
****给力*****
作者: wsl123456    时间: 2016-6-8 19:53
给力,赞一个




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