import java.util.*;class User 
{
String userName;
int money; public User(String userName,int money)
{
this.userName = userName;
this.money = money; }
public String getName()
{
return userName; }
public int money()
{
return money;
} public String toString()
{
return "用户名:"+userName+"帐目:"+money;
}
}

public class  HandleBank 
{
public static void main(String[]args)throws Exception
{
User u1 = new User("haifei",900);
User u2 = new User("haixiang",300);
User u3 = new User("haiyan",600);
User u4 = new User("haihua",500); List list = new ArrayList(); list.add(u1);
list.add(u2);
list.add(u3);
list.add(u4);

for (int i = 0;i<list.size() ;i++ )
{
//User user = (User)list.get(i);
Collections.sort(list);
System.out.println(list);
}
}
}

解决方案 »

  1.   

    Exception in thread "main" java.lang.ClassCastException: User
    at java.util.Arrays.mergeSort(Arrays.java:1156)
    at java.util.Arrays.sort(Arrays.java:1080)
    就抛出这样的异常信息
    请高手指教
      

  2.   

    调用Connections.sort()方法时,要重写接口 Comparator中的CompareTo()方法,就不会抛
    java.lang.ClassCastException异常
      

  3.   

    user要实现Comparable接口里的方法,才能用排序功能
      

  4.   

    问题都找出来了还不会改?严重怀疑楼主的程序是不是自己写的。import java.util.*;public class HandleBank {
    public static void main(String[] args) throws Exception {
    User u1 = new User("haifei", 900);
    User u2 = new User("haixiang", 300);
    User u3 = new User("haiyan", 600);
    User u4 = new User("haihua", 500); List list = new ArrayList(); list.add(u1);
    list.add(u2);
    list.add(u3);
    list.add(u4); Collections.sort(list);
    System.out.println(list);
    }
    }class User implements Comparable {
    private String userName;
    private int money; public User(String userName, int money) {
    this.userName = userName;
    this.money = money;
    } public String getName() {
    return userName;
    } public int getMoney() {
    return money;
    } public String toString() {
    return "User Name:" + userName + "Money:" + money;
    }

    public int compareTo(Object o) {
    if (money > ((User)o).money)
    return 1;
    else if (money < ((User)o).money)
    return -1;
    return 0;
    }}
      

  5.   

    import java.util.*;
    class  TestSort
    {
    public static void main(String[] args) 
    {
    ArrayList al = new  ArrayList();
    al.add(new Integer(1));
    al.add(new Integer(3));
    al.add(new Integer(5));
    al.add(new Integer(2));
    al.add(new Integer(4));
    al.add(new Integer(7));
    al.add(new Integer(6));
    Collections.sort(al); System.out.println(al.toString());
    }
    }这个怎么不要重写接口 Comparator中的CompareTo()方法,
      

  6.   

    Integer已经重写过了,看看源码。