您的位置:首页 > 其它

对中文按照字典顺序排列

2017-02-04 23:00 351 查看
要求:

 * •(1)创建学生类,有以下两个属性:姓名name和成绩score,分别是字符串类型和整型。

 * •(2)实现Comparator接口,让学生按照以下规则排序:成绩高的学生在前面,成绩相同的学生,姓名拼音按字典顺序排列

 * •(3)把学生实例放到List集合中,输出集合中的所有学生

package dms.java.base.collection;

import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Locale;

/**
* •(1)创建学生类,有以下两个属性:姓名name和成绩score,分别是字符串类型和整型。
* •(2)实现Comparator接口,让学生按照以下规则排序:成绩高的学生在前面,成绩相同的学生,姓名拼音按字典顺序排列
* •(3)把学生实例放到List集合中,输出集合中的所有学生
* @author BrightSt
*
*/
public class StudentComparator {

static ArrayList<Student> studentList = new ArrayList<>();

public static void main(String[] args) {
studentList.add(new Student("赵六", 70));
studentList.add(new Student("王五", 85));
studentList.add(new Student("张三", 99));
studentList.add(new Student("李四", 85));
studentList.add(new Student("孙七", 75));

Collections.sort(studentList);
for(int i=0;i<studentList.size();i++){
System.out.println(studentList.get(i).getName()+" "+studentList.get(i).getScore());
}

}

}

class Student implements Comparable<Student>{
private String name;
private int score;

public Student(String name,int score) {
this.name = name;
this.score = score;
}

public String getName() {
return name;
}

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

public int getScore() {
return score;
}

public void setScore(int score) {
this.score = score;
}

@Override
public int compareTo(Student o) {
if(this.getScore() != o.getScore()){
return o.getScore()-this.getScore();
}else{
Collator instance = Collator.getInstance(Locale.CHINA);
return instance.compare(this.getName(), o.getName());
}
}

}


要想实现比较功能一定要实现Comparable接口里的compareTo方法,例如这里的比较学生的成绩、姓名,student实现compareTo方法。重点是了解:
Collator instance = Collator.getInstance(Locale.CHINA);的用法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐