求关于JAVA的一个算法问题

Cupid1945 2008-08-01 05:08:48
我有一段程序如下,大家可以自己运行测试
public class ArryListFunctionAction {
public static void main(String args[]){
List a = new ArrayList();
String b;
String c;
String d;
int e;
a.add(0,"100|小王");
a.add(1,"67|小丁");
a.add(2,"120|小古");
for(int i=0 ;i<a.size();i++){
d= String.valueOf(a.get(i));

System.out.println(d.substring(0,d.indexOf("|")));
System.out.println(d.substring(d.indexOf("|")+1,d.length()));
}
}
}

我希望能有个方法对LIST a根据分数100 67 120进行排序,排序后姓名不能排乱(按排序规则排列)

...全文
71 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cupid1945 2008-08-04
  • 打赏
  • 举报
回复
谢lclg_silver 的回复
老紫竹 2008-08-01
  • 打赏
  • 举报
回复
    Collections.sort(a, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
String s1 = o1.toString();
String s2 = o2.toString();
return new Integer(s1.substring(0,s1.indexOf("|"))).compareTo(new Integer(s2.substring(0,s2
.indexOf("|"))));
}
});
// 前提,你的字符串里一定有|,且前面都是数字,否则出异常

无尽飞羽 2008-08-01
  • 打赏
  • 举报
回复

public static void sort(List l,boolean order){
String str1 ;
String str2 ;
int int1;
int int2;
for (int i = 0 ; i < l.size() ; i++ ){
for (int j = 0 ;j <l.size() - i - 1; j++){
str1 = (String)l.get(j);
str2 = (String)l.get(j+1);
int1 = Integer.parseInt(str1.split(" ")[0]);
int2 = Integer.parseInt(str2.split(" ")[0]);
if (order == true){
if (int1 > int2){
l.remove(j+1);
l.remove(j);
l.add(j, str2);
l.add(j+1,str1);
}
}else{
if (int1 < int2){
l.remove(j+1);
l.remove(j);
l.add(j, str2);
l.add(j+1,str1);
}
}
}
}
}
libo_xigua 2008-08-01
  • 打赏
  • 举报
回复
用SORT不就可以了?

81,114

社区成员

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

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