public class Employee {
private 文字列名;
private int age;
民間の長期給与。
public String getName() {
return name;
}
public int getAge() {
return age;
}
public long getSalary() {
return salary;
}
public Employee(文字列名, int age, int salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
@Override
//このメソッドは従業員情報を表示します
public String toString() {
return "[name=" + this.name + ", age=" + this.age + ", salary=" +
this.salary + "]";
}
}
import java.util.ArrayList;Collections.sort()は、ComparableインタフェースとComparatorインタフェースの両方を使用しない限り機能しないオブジェクトのArrayListに対して実行されるため、問題が発生します。コンパイルエラーが表示されます:
import java.util.Collections;
public class ArrayListComparable {
public static void main(String[] args) {
ArrayList<従業員>arraylist = new ArrayList<従業員>();
arraylist.add(new Employe("mateo", 32, 20000));
arraylist.add(new Employe("katia", 26, 10000));
arraylist.add(new Employe("aline", 30, 40000));
arraylist.add(new Employe("salim", 28, 35000));
System.out.println("従業員の順序付きリスト:\n"+Collections.sort(arraylist));
}
}
スレッド "main"java.lang.Errorの例外:未解決のコンパイルの問題:
演算子+は引数の型String、void
に対して未定義ですバインドの不一致:Collections型のジェネリックメソッドsort(List)は、引数(ArrayList )には適用されません。推論された型 Employe は、境界パラメーター >
at ArrayListComparable.main(ArrayListComparable.java:14)
public class Employe implements Comparable<従業員>{メソッドを呼び出す権利が与えられました Collections.sort():
private 文字列名。
private int age;
民間の長期給与。
public String getName() {
return name;
}
public int getAge() {
return age;
}
public long getSalary() {
return salary;
}
public Employee(文字列名, int age, int salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
@Override
//このメソッドは従業員情報を表示します
public String toString() {
return "[name=" + this.name + ", age=" + this.age + ", salary=" +
this.salary + "]";
}
@Override
public int compareTo(Employee emp) {
//従業員を年齢順に並べ替える croiddant
//その従業員の年齢
//がオブジェクトとの比較><オブジェクトより小さい、等しい、または大きい場合、負、ゼロ、または正の整数を遡及 return (this.age - emp.age);
}
}
import java.util.ArrayList;このコードを実行すると、次の結果が得られます:
import java.util.Collections;
public class ArrayListComparable {
public static void main(String[] args) {
ArrayList<従業員>arraylist = new ArrayList<従業員>();
arraylist.add(new Employe("mateo", 32, 20000));
arraylist.add(new Employe("katia", 26, 10000));
arraylist.add(new Employe("aline", 30, 40000));
arraylist.add(new Employe("salim", 28, 35000));
Collections.sort(arraylist);
System.out.println("年齢順の従業員リスト:\n");
for(Employee e:arraylist)
System.out.println(e);
}
}
年齢順の従業員リスト:
[name=katia, age=26, salary=10000]
[name=salim, age=28, salary=35000]
[name=aline, age=30, salary=40000]
[name=mateo, age=32, salary=20000]
import java.util.Comparator;テストクラスmain:
public class Employee {
private 文字列名。
private int age;
民間の長期給与。
public String getNom() {
return name;
}
public int getAge() {
return age;
}
public long getSalary() {
return salary;
}
public Employee(文字列名, int age, int salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
@Override
//このメソッドは従業員情報を表示します
public String toString() {
return "[name=" + this.name + ", age=" + this.age + ", salary=" +
this.salary + "]";
}
/*
* 従業員を名前でソートするためのコンパレータ
*/
public static Comparator<従業員>ComparatorName = new Comparator<従業員>() {
@Override
public int compare(Employee e1, Employee e2) {
return e1.getName().compareTo(e2.getName());
}
};
/*
* 従業員を年齢別にソートするためのコンパレータ
*/
public static Comparator<従業員>ComparatorAge = new Comparator<従業員>() {
@Override
public int compare(従業員 e1, 従業員 e2) {
return (int) (e1.getAge() - e2.getAge());
}
};
/*
* 従業員を給与でソートするためのコンパレータ
*/
public static Comparator<従業員>ComparatorSalary = new Comparator<従業員>() {
@Override
public int compare(Employee e1, Employee e2) {
return (int) (e1.getSalary() - e2.getSalary());
}
};
}
import java.util.ArrayList;このコードを実行すると、次のようになります。
import java.util.Collections;
public class main{
public static void main(String[] args) {
ArrayList<従業員>arraylist = new ArrayList<従業員>();
arraylist.add(new Employe("mateo", 32, 20000));
arraylist.add(new Employe("katia", 26, 10000));
arraylist.add(new Employe("aline", 30, 40000));
arraylist.add(new Employe("salim", 28, 35000));
//名前でソート
Collections.sort(arraylist, Employee.ComparatorName);
System.out.println("名前順の従業員リスト:");
for(Employee e:arraylist)
System.out.println(e);
//年齢でソート
Collections.sort(arraylist, Employee.ComparatorAge);
System.out.println("年齢順の従業員リスト:");
for(Employee e:arraylist)
System.out.println(e);
//給与でソート
Collections.sort(arraylist, Employee.ComparatorSalary);
System.out.println("給与順の従業員リスト:");
for(Employee e:arraylist)
System.out.println(e);
}
}
名前順の従業員リスト:
[name=aline, age=30, salary=40000]
[name=katia, age=26, salary=10000]
[name=mateo, age=32, salary=20000]
[name=サリーム, age=28, salary=35000]
年齢順の従業員一覧:
[name=katia, age=26, salary=10000]
[name=salim, age=28, salary=35000]
[name=aline, age=30, salary=40000]
[name=mateo, age=32, salary=20000]
給与順の従業員リスト:
[name=Katia, age=26, salary=10000]
[name=mateo, age=32, salary=20000]
[name=salim, age=28, salary=35000]
[name=aline, age=30, salary=40000]
Please disable your ad blocker and refresh the window to use this website.