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();
}
}出来的他的 成绩 和 年龄应该是按照降序的方式排列的啊 为什么没什么效果过啊 请大牛指点 谢谢
解决方案 »
- Java线程问题
- 如何获得当前日期并显示在GUI组件中显示
- 请问谁有详细的 lzw 算法的详细资料?
- 初学JAVA,什么教材上手比较好?
- 汉字字符串分割问题,高手帮帮忙
- 请教java进阶的好书
- 用javamail往exchange server 邮件服务器发送文件时主题词的问题
- jni和dll问题,复杂的c++代码怎么处理?
- 有谁配过Apache+(tomcat+jboss)?
- Can't find class xxx or something it requires
- 请教个新手问题,关于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