这是我在一个面试初级工程师的时候遇到的一个问题,觉得在项目中都没怎么遇到.
一.编写一个Student对象
public class Student { private String name; private Integer age; /** * @return the name */ /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the age */ public Integer getAge() { return age; } /** * @param age the age to set */ public void setAge(Integer age) { this.age = age; } /** * <p>Title: </p> * <p>Description: </p> * @param name * @param age */ public Student(String name, Integer age) { super(); this.name = name; this.age = age; } /* (non-Javadoc) * @see java.lang.Comparable#compareTo(java.lang.Object) */ /* (non-Javadoc) * @see java.lang.Comparable#compareTo(java.lang.Object) */ }
二.编写测试类主要用到得时Collections这个辅助工具
1.Collections.sort方法支持对对象进组排序
2.使用方法:只要实现Comparator方法.
3.实现目的:主要是告诉这个方法我要用什么方式进行对象的排序
4.这里我将对学生的年龄进行排序,年龄相等的对名字再进行排序
package com.hck.test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ArrayListDemo {
public static void main(String[] args) {
//创建数组并且添加对象
List<Student> slist=new ArrayList<Student>();
slist.add(new Student("张三", 28));
slist.add(new Student("王五", 23));
slist.add(new Student("老六", 27));
slist.add(new Student("啊四", 21));
slist.add(new Student("大红", 21));
System.out.println("===排序前===");
for (Student student:slist) {
System.out.print(student.getName()+" ");
}
System.out.println();
/**
* Collections.sort方法支持对对象进组排序
* 使用方法:只要实现Comparator方法.
* 这个方法主要是告诉这个方法我要用什么方式进行对象的排序
* 这里我将对学生的年龄进行排序,年龄相等的对名字再进行排序
*/
Collections.sort(slist, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//大于返回1
if(o1.getAge()>o2.getAge())
{
return 1;
}
//小于返回-1
if(o1.getAge()<o2.getAge())
{
return -1;
}
//等于的话比较name的大小
//compareTo返回值也是正数,0,负数
//对应的是大于,等于,小于
return(o1.getName().compareTo(o2.getName()));
// TODO Auto-generated method stub
}
});
System.out.println("===排序后===");
//增强for循环语句打印输出
for (Student student:slist) {
System.out.print(student.getName()+" ");
}
}
}
四.实验结果:
五.总结:这个主要是对数组熟悉程度的一个考察.