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){};
}
网友评论