mport java.util.Arrays;class Cla implements Comparable {
int num;
String name; Cla(int num, String name) {
this.num = num;
this.name = name;
} public String toString() {
return "num:" + num + ",姓名:" + name;
} public int compareTo(Object o) {
Cla s = (Cla) o;
return num > s.num ? 1 : (num == s.num ? 0 : -1);
} /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
Cla[] s = { new Cla(2, "zhang"), new Cla(1, "li"), new Cla(5, "z") };
Arrays.sort(s);
for (int i = 0; i < s.length; i++) {
System.out.println(s);
} }}
为什么结果是:
[La.Cla;@de6ced
[La.Cla;@de6ced
[La.Cla;@de6ced

解决方案 »

  1.   

    class CalNameComparator implements Comparator<Cla> {
        public int compare(Cla cla1, Cla cla2) {
    return cla1.getName().compareTo(cla2.getName());
        }
    }class CalNumComparator implements Comparator<Cla> {
        public int compare(Cla cla1, Cla cla2) {
    return new Integer(cla1.getNum()).compareTo(cla2.getNum());
        }
    }public class Cla implements Comparable {
        private int num;
        private String name;    Cla(int num, String name) {
    this.num = num;
    this.name = name;
        }    public String toString() {
    return "num:" + num + ",姓名:" + name;
        }    public int compareTo(Object o) {
    Cla s = (Cla) o;
    return num > s.num ? 1 : (num == s.num ? 0 : -1);
        }    public static void main(String[] args) {
    Cla[] s = { new Cla(2, "zhang"), new Cla(1, "li"), new Cla(5, "z") }; System.out.println("------------------------------------------------");
    Arrays.sort(s);
    for (int i = 0; i < s.length; i++) {
        System.out.println(s[i]);
    } System.out.println("------------------------------------------------");
    Arrays.sort(s, new CalNumComparator());
    for (int i = 0; i < s.length; i++) {
        System.out.println(s[i]);
    } System.out.println("------------------------------------------------");
    Arrays.sort(s, new CalNameComparator());
    for (int i = 0; i < s.length; i++) {
        System.out.println(s[i]);
    }    }    public int getNum() {
    return num;
        }    public void setNum(int num) {
    this.num = num;
        }    public String getName() {
    return name;
        }    public void setName(String name) {
    this.name = name;
        }}
      

  2.   


    package test;
    import java.util.Arrays;public class Cla implements Comparable {
    int num;
    String name;

    Cla(int num, String name) {
    this.num = num;
    this.name = name;
    }

    public String toString() {
    return "num:" + num + ",姓名:" + name;
    }

    public int compareTo(Object o) {
    Cla s = (Cla) o;
    return num > s.num ? 1 : (num == s.num ? 0 : -1);
    }

    public static void main(String[] args) {
    Cla[] s = { new Cla(2, "zhang"), new Cla(1, "li"), new Cla(5, "z") };
    Arrays.sort(s);
    for (int i = 0; i < s.length; i++) {
    System.out.println(s[i].num+" "+s[i].name);
    }

    }}
      

  3.   

    for (int i = 0; i < s.length; i++) {
    System.out.println(s[i]);
    }
    数组的toString方法是object的toString方法
      

  4.   

    +1,改为for (int i = 0; i < s.length; i++) {
                System.out.println(s[i]);
            }
    就可以输出lz想要的结果了。