当前位置: 代码迷 >> J2SE >> List对象获取对象属性值最大的对象解决办法
  详细解决方案

List对象获取对象属性值最大的对象解决办法

热度:371   发布时间:2016-04-23 21:39:33.0
List对象获取对象属性值最大的对象
List<student>包含10个student对象,student对象里面有个年龄的属性,遍历List<student>,找出年龄最大的对象,将该对象的一个属性设置为True.
JAVA基础

------解决方案--------------------
1.循环比较
2.写个比较器根据年龄排序,倒序就是第一个,顺序就是最后一个
------解决方案--------------------
package test01;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Student implements Comparable<Student>{

private String name;
private int age;
private boolean GoodStu;


public Student(String name, int age, boolean goodStu) {
super();
this.name = name;
this.age = age;
GoodStu = goodStu;
}



public Student() {
super();
// TODO Auto-generated constructor stub
}



/**
 * @param args
 */
public static void main(String[] args)
{
Student stu1 = new Student("zhangsan",28,false);
Student stu2 = new Student("lis",26,false);
Student stu3 = new Student("wangwu",27,false);

List<Student>  stus = new ArrayList<Student>();
stus.add(stu1);
stus.add(stu2);
stus.add(stu3);
print(stus);
System.out.println();
//进行排序
Collections.sort(stus);
print(stus);
System.out.println();

Student stuOfOldAge = stus.get(stus.size()-1);
stuOfOldAge.setGoodStu(true);
System.out.print("Old Student——" + stuOfOldAge.getName() + ":" + stuOfOldAge.getAge() + ":" + stuOfOldAge.isGoodStu());
}

//重写equals
public boolean equals(Object obj) 
{
if(!(obj instanceof Student))
{
return false;
}

Student stu = (Student)obj;
return ((stu.name).equals(name)) && ((stu.age) == age) && (stu.GoodStu == GoodStu);
}

//重写hashCode
public int hashCode()
{
int result = 29;
result = 31 * result + name.hashCode();
result = 31 * result + age;
result = 31 * result + (GoodStu? 0:1);
return result;
}

@Override
public int compareTo(Student stu)
{
int cap = age - stu.age;
if(cap != 0)
{
return cap;
}
else
{
return name.compareTo(stu.name);
}
}

//打印方法
private static void print(List<Student> list)
{
for(Student stu:list)
{
System.out.print(stu.getName() + ":" + stu.getAge() + ":" + stu.isGoodStu() + "\t");
}
}


public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public boolean isGoodStu() {
return GoodStu;
}

public void setGoodStu(boolean goodStu) {
GoodStu = goodStu;
}


}

------解决方案--------------------
引用:
package test01;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Student implements Comparable<Student>{

private String name;
private int age;
private boolean GoodStu;


public Student(String name, int age, boolean goodStu) {
super();
this.name = name;
this.age = age;
GoodStu = goodStu;
}



public Student() {
super();
// TODO Auto-generated constructor stub
}



/**
 * @param args
 */
public static void main(String[] args)
{
Student stu1 = new Student("zhangsan",28,false);
Student stu2 = new Student("lis",26,false);
Student stu3 = new Student("wangwu",27,false);

List<Student>  stus = new ArrayList<Student>();
stus.add(stu1);
stus.add(stu2);
  相关解决方案