Collections.sort()报错

package javatest;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import org.omg.CORBA.PUBLIC_MEMBER;

public class Collections_Demo {

public static void main(String[] args) {
    List<Person> c1=new ArrayList<Person>();
    c1.add(new Person("qianyu", "ma"));
    c1.add(new Person("liang", "ma"));
    c1.add(new Person("jing", "sun"));
    }
    System.out.println(c1);
    Collections.sort(c1);  //报错:The method sort(List<T>) in the type Collections is not applicable for the arguments (List<Person>)
}

}
class Person implements Comparable<Person> { //实现Comparable接口
private String firstName;
private String lastName;

public String getFirstName() {
    return firstName;
}

public String getLastName() {
    return lastName;
}

public Person(String lastName, String firstName) {
    this.firstName = firstName;
    this.lastName = lastName;
}

public String toString() {
    return firstName + "" + lastName;

}

public int compareTo(Person p) {  //重写compareTo()方法
    int lastCam = lastName.compareTo(p.getLastName());
    return (lastCam != 0 ? lastCam : firstName.compareTo(p.getFirstName()));
}
  • 原因:Person类未实现Comparable接口
  • 解决办法:让Person类实现Comparable接口并重写compareTo()方法
    class Person implements Comparable{
    public int compareTo(c1){};
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 项目中经常会遇到列表搜索查询,大部分的查询是可以通过sql语句来实现的,有些特殊的搜索排序sql则实现不了,例如中...
    信徒_allen阅读 2,708评论 0 1
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,954评论 1 114
  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 1,246评论 1 0
  • 多态 任何域的访问操作都将有编译器解析,如果某个方法是静态的,它的行为就不具有多态性 java默认对象的销毁顺序与...
    yueyue_projects阅读 1,085评论 0 1
  • Comparable 简介 Comparable 是排序接口。 若一个类实现了Comparable接口,就意味着“...
    03ca2835cf70阅读 207评论 0 0

友情链接更多精彩内容