List的排序 能不能给个例子,List内存放着多列的数据,怎么以不同的列给list排序? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 List内存放着多列的数据========================怎样存的,是存了个对象吗? list中存放的是一个参数类,类里面都是get和set方法,用于存放数据的! 使用 Collections.sort 方法,自己再实现几个 Comparator 就可以了。 能给点例子么?Comparator 的东西遇到的不多啊 import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test2 { public static void main(String[] arg) { List<Student> list = new ArrayList<Student>(); list.add(new Student(2, "张三")); list.add(new Student(1, "李四")); list.add(new Student(4, "王二")); list.add(new Student(3, "赵五")); // Comparator<Student> comparator = getComparator("id"); Comparator<Student> comparator = getComparator("name"); Collections.sort(list, comparator); // 输出 for(Student stu : list) { System.out.println(stu.getId() + " --> " + stu.getName()); } } private static Comparator<Student> getComparator(String fieldName) { if(fieldName.equalsIgnoreCase("id")) { return new StudentIdComparator<Student>(); } if(fieldName.equalsIgnoreCase("name")) { return new StudentNameComparator<Student>(); } return null; }}class Student { private int id; private String name; <construtor...> <getter/setter...>}/** * 按照学生的 id 号大小升序排序 */class StudentIdComparator<T extends Student> implements Comparator<Student> { public int compare(Student o1, Student o2) { return o1.getId() - o2.getId(); } }/** * 按照学生的 name 的 GB2312 编码排序(简单字可以理解为音序) */class StudentNameComparator<T extends Student> implements Comparator<Student>{ public int compare(Student o1, Student o2) { return getGBK(o1.getName()).compareTo(getGBK(o2.getName())); } private String getGBK(String str) { byte[] bytes = null; try { bytes = str.getBytes("gb2312"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } StringBuffer sb = new StringBuffer(); for(byte b : bytes) { sb.append(String.format("%02X", b)); } return sb.toString(); }} Frame中为什么setLayout(null)时无法显示Choice???? openfire,smack 初学者关于:线程中同步的问题 有没有简单的数据列表DB包 请大家看下这个该怎么改写呢??? 资源文件的操作 大家帮忙看看这段List程序,多谢了! 高手请快来救命,如何将同一个package下不同class的变量相互赋值 JAVA播放器 THINKING IN JAVA 第二版(中文)(经典之作品出版了) 请教一个关于JAVA接口的疑惑 如果注册NT服务
怎样存的,是存了个对象吗?
Comparator
的东西遇到的不多啊
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;public class Test2 {
public static void main(String[] arg) {
List<Student> list = new ArrayList<Student>();
list.add(new Student(2, "张三"));
list.add(new Student(1, "李四"));
list.add(new Student(4, "王二"));
list.add(new Student(3, "赵五")); // Comparator<Student> comparator = getComparator("id");
Comparator<Student> comparator = getComparator("name");
Collections.sort(list, comparator);
// 输出
for(Student stu : list) {
System.out.println(stu.getId() + " --> " + stu.getName());
}
}
private static Comparator<Student> getComparator(String fieldName) {
if(fieldName.equalsIgnoreCase("id")) {
return new StudentIdComparator<Student>();
}
if(fieldName.equalsIgnoreCase("name")) {
return new StudentNameComparator<Student>();
}
return null;
}
}class Student {
private int id;
private String name;
<construtor...>
<getter/setter...>
}/**
* 按照学生的 id 号大小升序排序
*/
class StudentIdComparator<T extends Student>
implements Comparator<Student> {
public int compare(Student o1, Student o2) {
return o1.getId() - o2.getId();
}
}/**
* 按照学生的 name 的 GB2312 编码排序(简单字可以理解为音序)
*/
class StudentNameComparator<T extends Student>
implements Comparator<Student>{
public int compare(Student o1, Student o2) {
return getGBK(o1.getName()).compareTo(getGBK(o2.getName()));
} private String getGBK(String str) {
byte[] bytes = null;
try {
bytes = str.getBytes("gb2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
StringBuffer sb = new StringBuffer();
for(byte b : bytes) {
sb.append(String.format("%02X", b));
}
return sb.toString();
}
}