如果是普通类型的数据进行排序直接用即可.(但是想要用自己的顺序排就要重写下面一样的方法)
如果要对对象进行排序就要重写接口Comparable中的public int compareTo(Object o)方法或Comparator中的public int compare(Object obj1,Object obj2)方法,例子如下:
这是继承Comparable类的写法
- public class array_Sort_Comparable implements Comparable<Object>{
- private int value;
- private String name;
- public array_Sort_Comparable(int v,String s){
- value=v;
- name=s;
- }
- public String getName() {
- return name;
- }
- @Override
- public int compareTo(Object o) {
- if(this.value>((array_Sort_Comparable)o).value){
- return 1;
- }
- else
- return -1;
- }
- public String toString(){
- return name+":"+value;
- }
- }
这是继承Comparator的写法
- import java.util.Comparator;
- public class array_Sort_Comparator implements Comparator<Object>{
- public int compare(Object obj1,Object obj2){
- array_Sort_Comparable o1=(array_Sort_Comparable) obj1;
- array_Sort_Comparable o2=(array_Sort_Comparable) obj2;
- if(o1.getName().charAt(1)>o2.getName().charAt(1))
- return 1;
- else
- return -1;
- }
- }
这是用来测试的
- import java.util.Arrays;
- public class test {
- public static void main(String[] args) {
- array_Sort_Comparable []array=new array_Sort_Comparable[2];
- array[0]=new array_Sort_Comparable(10,"第一个物品");
- array[1]=new array_Sort_Comparable(-10,"第二个物品");
- System.out.println("排序前:");
- for(array_Sort_Comparable temp:array){
- System.out.println(temp);
- }
- Arrays.sort(array); //这是继承Comparable的用法
- System.out.println("用value排序后:");
- for(array_Sort_Comparable temp:array){
- System.out.println(temp);
- }
- Arrays.sort(array,new array_Sort_Comparator()); //这是继承Comparator的用法
- System.out.println("用name排序后:");
- for(array_Sort_Comparable temp:array){
- System.out.println(temp);
- }
- }
- }
通过上面的例子,理解他们的机制就可以了