现在有Student类,Student类中有两个属性String name;
int score;怎样将Student类的对象按name排序?请高手指点!!
int score;怎样将Student类的对象按name排序?请高手指点!!
解决方案 »
- 万年历呀,做一半不会,帮帮忙呗
- 想问问在java语言中申明的类变量、实例变量、局部变量在内存中的分配问题?
- equels和matches有什么区别?
- 如何求出Unicode下的'A'的二进制代码.java
- Collections中的元素按多个属性排序
- java文档
- %%%%%%%%%%%%%%%%%%%%有人用过joc这种混淆器的吗?我用it混淆了我的Applet,在IE下报告:找不到主类。用javac编译就可以。是怎么回事??
- 请问哪儿有jbuilder的中文版教程下载?100分相送
- 在系统剪贴板中,能否放置多层内容?
- 关于Java中Timer的stop方法
- 表达式的提升
- myclipse7.0调试进入加载器类
重写compare方法就行了,这个在TreeMap里经常用的
public class Test {
public static void main(String[] args) {
TreeMap map = new TreeMap();
Student s1,s2,s3;
//实例化对象
s1=new Student();
s1.name="zhangsan";
s1.score=60;
s2=new Student();
s2.name="ls";
s2.score=70;
s3=new Student();
s3.name="ww";
s3.score=80;
//将对象放入map
map.put(s1.name,s1);
map.put(s2.name,s2);
map.put(s3.name,s3); Collection col = map.values();
Iterator it = col.iterator();
while(it.hasNext()) {
Student s=(Student)it.next();
System.out.println(s.name);
}
} }
class Student
{
String name;
int score;
}
public int compare(Student s1,Student s2){
if(s1==null||s2==null) return 0;
return s1.name.compareTo(s2.name);
return 0;
}
});
public class C {
public static void main(String[] args) {
Set<Student> set = new TreeSet<Student>();
Student s1, s2, s3;
// 实例化对象
s1 = new Student();
s1.name = "zhangsan";
s1.score = 60;
s2 = new Student();
s2.name = "ls";
s2.score = 70;
s3 = new Student();
s3.name = "ww";
s3.score = 80;
set.add(s1);
set.add(s2);
set.add(s3);
for (Student stu: set) {
System.out.println(stu.name);
}
}}//自定义排序
class Student implements java.lang.Comparable {
String name; int score; public int compareTo(Object o) {
Student stu = (Student) o;
return this.name.compareTo(stu.name);
}
}
package com.ricky.www;@SuppressWarnings("unchecked")
public class Student implements Comparable {
private String name;
private String score; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getScore() {
return score;
} public void setScore(String score) {
this.score = score;
} @Override
public int compareTo(Object o) {
@SuppressWarnings("unused")
Student student1 = (Student) o;
return this.getName().compareTo(student1.getName());
} public String toString() {
return this.getName() + ":" + this.getScore();
}}
package com.ricky.www;import java.util.Set;
import java.util.TreeSet;public class Test {
public static void main(String[] args) {
Student ricky = new Student();
Student jerry = new Student(); ricky.setName("ricky");
ricky.setScore("89"); jerry.setName("jerry");
jerry.setScore("99"); Set<Student> set = new TreeSet<Student>();
set.add(ricky);
set.add(jerry);
for (Student stu1 : set) {
System.out.println(stu1);
}
}
}
public int compareTo(Student other)
{
return this.score.compareTo(other.score);
}
public class Student implements Comparable<Student>
{
public Student(String name ,int score)
{
this.name = name;
this.score = score;
}
public int compareTo(Student other)
{
return name.compareTo(other.name);
}
public String toString()
{
return "score : "+score+",name : "+name;
}
public static void main(String[] args)
{
Student[] student = new Student[3];
student[0] = new Student("ang san",3);
student[1] = new Student("bruse si",1);
student[2] = new Student("chang hu",9);
Arrays.sort(student);
for(Student s:student)
System.out.println(s);
}
private String name;
private int score;
}
Cannot invoke compareTo(int) on the primitive type int
return this.score.compareTo(other.score); 参数必须是String类型啊?