集合元素属性求最大值

定义一个员工类Employee,包含三个属性姓名、年龄、性别,创建三个员工对象存入ArrayList集合中。
A:遍历集合遍历输出。
B:求出年龄最大的员工,然后将该对象的姓名变为:老司机。

 class Employee
{
public Employee(String 姓名, int 年龄, Boolean 性别) {
this.姓名 = 姓名; 
... // 别的类似
}
private String 姓名;
public String get姓名() { return 姓名; }
public void set姓名(String value) { 姓名 = value; }
... //另外两个属性类似
}

主程序
ArrayList list = new ArrayList();
list.add(new Employee("张三", 30, true));
... //再添加2条。
Employee max = (Employee)list[0];
for (Object o : list)
{
if (max.get年龄() < ((Employee)o).get年龄()) max = (Employee)o);
println(o.toString());
}
max.set姓名("老司机");

List list = new ArrayList();
list.add(new Employee("li","1"));
list.add(new Employee("hu","2"));//性别忽略
list.add(new Employee("gy","3"));
int max = list.get(0).getAge();
int position=0;
for(int i=1;i if(list.get(i).getAge()>=max){
max=list.get(i).getAge();
currentPosition=i;
}
}
//max可能有多个
for(int i=0;i<list.size();i++){
if(list.get(i).getAge()==max){
list.get(i).setName("老司机");
}
}
//list和set若是用到foreach遍历,修改和删除时,必须用迭代器

Employee:
public class Employee {

private String Name;
private int Age;
private String Sex;

public Employee(String name, int age, String sex) {
    Name = name;
    Age = age;
    Sex = sex;
}

public String getName() {
    return Name;
}

public void setName(String name) {
    Name = name;
}

public int getAge() {
    return Age;
}

public void setAge(int age) {
    Age = age;
}

public String getSex() {
    return Sex;
}

public void setSex(String sex) {
    Sex = sex;
}


//用于比较年龄大小
@Override
public boolean equals(Object obj) {
    return this.Age > ((Employee) obj).getAge();
}

//用于打印employee信息
@Override
public String toString() {
    return "Name:" + this.getName() + "--Age:" + this.getAge() + "--Sex:" + this.getSex();
}

}

Main函数:
public static void main(String[] args) {
List employees = new ArrayList<>();
employees.add(new Employee("Jhon", 10, "男"));
employees.add(new Employee("oven", 15, "女"));
employees.add(new Employee("Tim", 20, "男"));
//A:遍历集合遍历输出。
for (Employee employee : employees) {
System.out.println(employee.toString());
}

    //B:求出年龄最大的员工,然后将该对象的姓名变为:老司机。

    //找出年龄最大的索引
    int index = 0;
    Employee MaxEmployee = employees.get(0);
    for (int i = 0; i < employees.size(); i++) {
        if (employees.get(i).equals(MaxEmployee)) {
            MaxEmployee = employees.get(i);
            index = i;
        }
    }

    employees.get(index).setName("老司机");
    for (Employee employee : employees) {
        System.out.println(employee.toString());
    }
}

    如有帮助,望采纳

如果使用了JDK1.8的话,可以尝试。如果不是的话,请忽略

 Optional<Employee > userOp= userList.stream().max(Comparator.comparingInt(Employee ::getAage));
 userOp.get().setName("老司机");

public class Employee implements Comparable {

private String name;
private int age;
private String sex;

public Employee(String name, int age, String sex) {
    this.name = name;
    this.age = age;
    this.sex = sex;
}

public int getAge() {
    return age;
}

/**
 * 从小到达排列,返回值大于0放后面,返回值小于0放前面,等于0不变位置
 */
@Override
public int compareTo(Employee o) {
    if (this.age != o.getAge())
        return (this.age - o.getAge());
    return 0;
}

public static void main(String[] args) {
    List<Employee> list = new ArrayList<Employee>();
    list.add(new Employee("张三1", 46, "男"));
    list.add(new Employee("张三2", 40, "男"));
    list.add(new Employee("张三3", 50, "男"));
    list.add(new Employee("张三4", 60, "男"));
    list.add(new Employee("张三5", 20, "男"));
    list.add(new Employee("张三6", 10, "男"));
    list.add(new Employee("张三7", 20, "男"));
    Collections.sort(list);
    for (int i = 0, len = list.size(); i < len; i++) {
        System.out.print(list.get(i).getAge() + "岁\t");
    }
}

}