package pack2;
import java.util.*;
public class Student {
public static void main(String[] args) {
Student student = new Student();
student.Student11();
student.Teache(); }
public void Teache(){
Teacher t = new Teacher();
t.setAge(35);
t.setName("肖老师");
t.setSex("男");
t.run();
}
public void Student11(){
List<Student1> list = new ArrayList<Student1>();
Student1 s1 = new Student1();
s1.setId(1);
s1.setName("巫妖王");
s1.setScore(100);
s1.setAge(127);
list.add(s1);
Student1 s2 = new Student1();
s2.setId(2);
s2.setName("阿拉斯");
s2.setScore(13);
s2.setAge(34);
list.add(s2);
Student1 s3 = new Student1();
s3.setId(3);
s3.setName("关羽");
s3.setScore(55);
s3.setAge(77);
list.add(s3);
// Collections.sort(list);
Collections.sort(list,Collections.reverseOrder()); //降序
for(Student1 s:list){
System.out.println(s.toString());
}
}}
/*-------------------------------------------------------------------------------------------*/package pack2;
public class Student1 implements Comparable{ private String name;
private double score;
private int age;
private int Id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return Id;
}
public void setId(int Id) {
this.Id = Id;
}
public boolean equals(Object o){
Student1 s = (Student1)o;
if(this.getId() == s.getId()){
return true;
}else{
return false;
}
}
public int compareTo(Object o) {
Student1 s = (Student1)o;
if(this.getScore() < s.getScore()){
return 1;
}else{
return 0;
}
}
public String toString(){
return this.getName()+"的年龄是:"+this.getAge()+
" 成绩是:"+this.getScore();
}
public int hashCode(){
return this.getId()+this.getName().hashCode();
}
}出来的他的 成绩 和 年龄应该是按照降序的方式排列的啊 为什么没什么效果过啊 请大牛指点 谢谢
import java.util.*;
public class Student {
public static void main(String[] args) {
Student student = new Student();
student.Student11();
student.Teache(); }
public void Teache(){
Teacher t = new Teacher();
t.setAge(35);
t.setName("肖老师");
t.setSex("男");
t.run();
}
public void Student11(){
List<Student1> list = new ArrayList<Student1>();
Student1 s1 = new Student1();
s1.setId(1);
s1.setName("巫妖王");
s1.setScore(100);
s1.setAge(127);
list.add(s1);
Student1 s2 = new Student1();
s2.setId(2);
s2.setName("阿拉斯");
s2.setScore(13);
s2.setAge(34);
list.add(s2);
Student1 s3 = new Student1();
s3.setId(3);
s3.setName("关羽");
s3.setScore(55);
s3.setAge(77);
list.add(s3);
// Collections.sort(list);
Collections.sort(list,Collections.reverseOrder()); //降序
for(Student1 s:list){
System.out.println(s.toString());
}
}}
/*-------------------------------------------------------------------------------------------*/package pack2;
public class Student1 implements Comparable{ private String name;
private double score;
private int age;
private int Id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return Id;
}
public void setId(int Id) {
this.Id = Id;
}
public boolean equals(Object o){
Student1 s = (Student1)o;
if(this.getId() == s.getId()){
return true;
}else{
return false;
}
}
public int compareTo(Object o) {
Student1 s = (Student1)o;
if(this.getScore() < s.getScore()){
return 1;
}else{
return 0;
}
}
public String toString(){
return this.getName()+"的年龄是:"+this.getAge()+
" 成绩是:"+this.getScore();
}
public int hashCode(){
return this.getId()+this.getName().hashCode();
}
}出来的他的 成绩 和 年龄应该是按照降序的方式排列的啊 为什么没什么效果过啊 请大牛指点 谢谢
解决方案 »
- 个人做软件,往哪方面发展最好?
- new接口能这样吗?
- 将二进制格式的字符串直接转换成二进制的问题,请大家帮帮忙!
- 试试看,IBM招聘题
- 有关Class.forName()的问题?
- Object 类的 clone 方法如何使用
- 求java计算器(要用package和是awt)—(急需,今晚)
- 小弟初学JAVA,大家给点建议吧
- 启动JBuilder6时出显错误:Unknown license file format,然后就不能启动。该怎么办?
- 请问:java中有队列(queue)这种数据结构吗?
- 请教个新手问题,关于System.out.print("\t")的
- java Iterator i=c.iterator();这句的意思是什么
ar.add(3);
ar.add(2);
ar.add(1);
// ar.add(1);
Collections.sort(ar); //升序
Iterator it = ar.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println("********************************");
Collections.sort(ar,Collections.reverseOrder()); //降序
for(Integer i:ar){
System.out.println(i);
}改用CompareTo这个接口 就有点模糊了
public int compareTo(Object o) {
Student1 s = (Student1) o;
if (this.getScore() < s.getScore()) {//小于的时候返回负数
return -1;
} else if(this.getScore()>s.getScore())//大于的时候返回正数
{
return 1;
}else //等于返回0
{
return 0;
}
}
具体他是这么调用的,你可以不管,但是你的compareTo 方法要写对,也就是你所需求的排序方案 就可以了。
我上次好像帮你写了一个,没看懂吗?
请看我的博客:Comparator和Comparable在排序中的应用和区别。
http://blog.csdn.net/iisgirl/article/details/7269833