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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冬冬宋 中级黑马   /  2016-8-16 20:02  /  2302 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[AppleScript] 纯文本查看 复制代码
package hemowork;

import java.util.ArrayList;
import java.util.ListIterator;

import student.Student1;

public class Demo2 {

	/**
	 * @param args
	 * 2,把集合中存储多个Person对象,Person有姓名和年龄,找出年龄最大的
			a,定义一个Person类型的变量, 先记住第一个元素
			b,循环遍历集合
			c,用每一个元素和变量比较年龄, 如果集合中的元素比变量记住的年龄大
			d,用变量记住这个年龄较大的元素
			e,返回变量记住的元素
	 */
	public static void main(String[] args) {
		ArrayList<Student1> list = new ArrayList<>();
		list.add(new Student1("志玲",18));
		list.add(new Student1("bady",28));
		list.add(new Student1("冰冰",30));
		list.add(new Student1("张天爱",20));
		list.add(new Student1("刘亦菲",18));
		list.add(new Student1("徐志摩",31));
		ListIterator<Student1> it = list.listIterator();//获取迭代器
		//Student1 s = new Student1();
		
		/*//s = list.get(0);
		Object [] arr = list.toArray();
		for (int i = 0; i < arr.length; i++) {
			Student s = 
			System.out.println(arr.getAge());*/
		//int i = 0;
		Student1 str = list.get(0);//定义临时Student的临时变量,取出第一个元素并记住
		while(it.hasNext()){	//对集合进行遍历
			Student1 s2 = it.next();//创建一个变量s2用来接收每一次迭代出来的元素
			if(s2.getAge()>str.getAge()){	//用迭代出来的元素年龄变量和临时变量记录元素的年龄比较
				//System.out.println(s2);
				str=s2;//如果条件满足,临时变量记住这个值
			}else{
				str=str;//如果不满足,则临时变量还是记录原来自己记录的值
				//System.out.println(str);
			}
			//System.out.println(str);
		}
		System.out.println(str);//比较结束输出临时变量里面记录的值,
	}

}

5 个回复

倒序浏览
赞一个,赞一个
回复 使用道具 举报
利用Collections.sort(List<T> list, Comparator<? super T> c)排序后再取出第一个或者最后一个元素更简洁。
回复 使用道具 举报
重写加调用可能能简化点代码。
[Java] 纯文本查看 复制代码
package demos;

import java.util.*;

//定义引用数据类
class Person{
	String name;
	int age;	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	//重写toString方法,不然输出的是内存地址
	public String toString() {		
		return name+"  "+age+"岁";	}
}
//重写比较器
class MyComparator implements Comparator<Person>{
	public int compare(Person o1, Person o2) {		
		return o1.age-o2.age;
	}	
}
public class Demo2 {
	public static void main(String[] args) {
		Collection<Person> list = new ArrayList<Person>(); 
		list.add(new Person("小王", 21));
		list.add(new Person("王叔叔", 36));
		list.add(new Person("王爷爷", 68));
		list.add(new Person("宝宝", 3));
		System.out.println(list);
		//获取自定义的比较器
		MyComparator compare = new MyComparator();
		System.out.println("年纪最大的是:"+Collections.max(list,compare));
	}
}

评分

参与人数 1黑马币 +2 收起 理由
r1503882525 + 2 回答认真

查看全部评分

回复 使用道具 举报
恩 这个可以
回复 使用道具 举报
赞一个。。。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马