[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);//比较结束输出临时变量里面记录的值,
}
}
[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));
}
}