请问Java Api里是否有 数组排序的方法? 请问Java Api里是否有 数组排序的方法?经常要给数组排序,写起来费劲,有没有 API的方法?老师曾经说过一句有一个叫scot上的方法,但是,我没有找到 请帮忙,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 collections类下的sort方法,但是要写比较器Arrays下也有个sort,LZ自己去看看API吧 使用Collections.sort()为List等排序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(); } } 在JAVA中有些基本类型的比较器,可以参照着写比较器! Arrays.sort(数组名)这个可以对数组排序 简单的数组可以使用这种方法。(实现Comparable接口的对象也行。) java中的判短if用法 关于从数据库读取过来的Date类型转换成YYYYMMDD HHMMSS的方法 讨论,为什么很多人都不定义public变量? 而要另外写get,set函数来设置private变量的值 帮下我看下这2道简单的算法,小妹在这里感谢各位了,在线等!!! 当窗口关闭时,想做一些事,该怎么弄? jbuilder光标定位问题? 1个尴尬的问题,请大家帮忙想想办法!! 向Jar文件中写入文件的问题 我用一张图片作为背景,现在又在上面画了一张小的,把小的移移走后,怎么样把原来的地方再用背景图补上呀 const是关键字?怎么用? 对象作为方法的参数 java 问题 谢谢
Arrays下也有个sort,LZ自己去看看API吧
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();
}
}
这个可以对数组排序