-2
При сортировке arraylist класса Customer (определяемого пользователем), имеющего имя и возраст в качестве атрибутов на основе имени, метод Collections.sort() показывает ошибку, что «тип java.util .Comparator не resolved.it косвенно ссылается из требуемых .class файла.Collections.sort() Метод не работает
package comparable;
import java.util.*;
public class Tester {
public static void main(String[] args){
List<Customer> custtlist=new ArrayList<Customer>();
Customer c1=new Customer("vikas",1);
Customer c2=new Customer("mittal",2);
custtlist.add(c1);
custtlist.add(c2);
System.out.println("Before Sorting");
Iterator<Customer> iterator = custtlist.iterator();
while(iterator.hasNext()){
Customer customer = (Customer) iterator.next();
System.out.println(customer.getCustname());
}
Collections.sort(custtlist);
System.out.println("After Sorting");
iterator = custList.iterator();
while (iterator.hasNext()) {
Customer customer = (Customer) iterator.next();
System.out.println(customer.getCustName());
}
}
}
//Customer Class
package comparable;
public class Customer implements Comparable<Customer> {
private String custname;
private int age;
public Customer(String custname, int age) {
this.custname = custname;
this.age = age;
}
public Customer() {
}
public String getCustname() {
return custname;
}
public void setCustname(String custname) {
this.custname = custname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int compareTo(Customer c){
return this.custname.compareTo(c.getCustname());
}
}
Возможно, ваш метод Customer.compareTo не будет реализован хорошо. –
Не могли бы вы добавить свой соответствующий код? –
Я проверил ваш код, и он работает. В нем есть пара опечаток «iterator = custList.iterator();» должен быть "iterator = custtlist.iterator();" и "System.out.println (customer.getCustName());" должен быть «System.out.println (customer.getCustname());». Метод сортировки работает как ожидалось. – RubioRic