-2
名前に基づいて名前と年齢を属性として持つCustomer Class(ユーザ定義)のarraylistをソートする際、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());"にする必要があります。 Sortメソッドは期待どおりに動作します。 – RubioRic