问一个关于排序的问题

crysword 2007-11-30 04:24:04
一个类,class classa{public int a;public int b;public int c}
一个List中储存许多classa的实例,能不能实现一个函数sort(string x)
实现功能sort("a")则对List按照classa实例中a的大小排序,
sort("b")则按照b的大小排序
...全文
126 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wensheng_zh2007 2007-12-04
  • 打赏
  • 举报
回复
还没试过
guoyueshan 2007-12-04
  • 打赏
  • 举报
回复
2种排序方法分别实现Comparator接口
用这个方法:Collections.sort(List l,Comparator c)
TerryLhw1983 2007-12-04
  • 打赏
  • 举报
回复
可以利用反射,去反射那个成员

import java.lang.reflect.Field;
try {
Class classa = Class.forName("Classa");
Field fieldA = classa.getDeclaredField("a");
} catch (Exception e) {
e.printStackTrace();
}
lionest 2007-12-04
  • 打赏
  • 举报
回复
GZ
crysword 2007-12-04
  • 打赏
  • 举报
回复
用Comparable接口我大概知道了,但是怎么根据输入的"a"来去Comparable中比较classa.a呢
迷眼流金 2007-11-30
  • 打赏
  • 举报
回复
你可以这样想:排序用的是Comparable接口,用代理模式实现这个接口
zhanggc1001 2007-11-30
  • 打赏
  • 举报
回复
package person;

import java.util.Arrays;

public class Test {
public static void main(String[] args) {
Classa array[]=new Classa[10];
array[0]=new Classa("abc");
array[1]=new Classa("bde");
array[2]=new Classa("mqq");
array[3]=new Classa("sef");
array[4]=new Classa("gtd");
array[5]=new Classa("dfg");
array[6]=new Classa("ert");
array[7]=new Classa("erg");
array[8]=new Classa("gfg");
array[9]=new Classa("ert");
Arrays.sort(array);
for(int i=0;i<10;i++)
System.out.println(array[i]+",");

}


}
class Classa implements Comparable<Classa>{
private String name;

public Classa(String name){
this.name=name;
}

public String getName() {
return name;
}

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

public String toString(){
return this.name;
}



public int compareTo(Classa o) {
// TODO Auto-generated method stub

return this.name.compareToIgnoreCase(o.getName());
}
}
对字符串排序,应该可以
daniel_kaka 2007-11-30
  • 打赏
  • 举报
回复
排序可以,但要让classa实现Comparable接口~
syhan 2007-11-30
  • 打赏
  • 举报
回复
implements Comparable

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧