Set集合中的treeSet問題:cannot be cast to java.lang.Comparable;


 使用TreeSet保存自定義對象時,

必須讓定義對象的類實現Comparable接口,並重寫compareTo()方法

否則報

實體類User:cannot be cast to java.lang.Comparable異常

public class User implements Comparable<User>{ private int age; private String name; private String pro; public User(String name,int age,String pro) { this.name = name; this.pro = pro; this.age = age; } @Override public int compareTo(User u) { if(this.age>u.age) { return 1; }else if(this.age==u.age) { return this.name.compareTo(u.name); }else { return -1; } } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPro() { return pro; } public void setPro(String pro) { this.pro = pro; } }

測試類Test

public class test{ public static void main(String[] args) { // TODO Auto-generated method stub
        Set<User> set = new    TreeSet<User>(); User user = new User("Java", 21,"小仙女"); User user2 = new User("Spring",22,"小跟班"); set.add(user); set.add(user2); System.out.println(set.size()); //遍歷方式一 // Iterator<User> it = set.iterator(); // while(it.hasNext()) { // User u = it.next(); // System.out.println(u.getName()); // }
        for (User u : set) { System.out.println(u.getName()+","+u.getAge()+","+u.getPro()); } } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM