Java 8 Stream APIを使用した従業員の名前と給与でのソート方法


  1. 従業員クラスの作成: まず、従業員を表すクラスを作成します。このクラスには、名前と給与のフィールドが含まれている必要があります。
public class Employee {
    private String name;
    private double salary;
    // コンストラクタ、ゲッター、セッターなどの必要なメソッドを実装する
}
  1. 従業員リストの作成: 次に、従業員のリストを作成します。ここでは、例としていくつかの従業員を追加します。
List<Employee> employees = new ArrayList<>();
employees.add(new Employee("John Doe", 5000.0));
employees.add(new Employee("Alice Smith", 6000.0));
employees.add(new Employee("Bob Johnson", 4000.0));
// 他の従業員を追加する
  1. 名前でソートする方法: 従業員リストを従業員の名前でソートするには、以下のようにStream APIを使用します。
List<Employee> sortedByName = employees.stream()
    .sorted(Comparator.comparing(Employee::getName))
    .collect(Collectors.toList());

上記のコードでは、Comparator.comparingメソッドを使用して従業員の名前を比較し、sortedメソッドを使用してソートします。

  1. 給与でソートする方法: 従業員リストを給与でソートするには、以下のようにStream APIを使用します。
List<Employee> sortedBySalary = employees.stream()
    .sorted(Comparator.comparing(Employee::getSalary))
    .collect(Collectors.toList());

上記のコードでは、Comparator.comparingメソッドを使用して従業員の給与を比較し、sortedメソッドを使用してソートします。

  1. 名前と給与でソートする方法: 従業員リストを名前と給与の両方でソートするには、以下のようにStream APIを使用します。
List<Employee> sortedByBoth = employees.stream()
    .sorted(Comparator.comparing(Employee::getName).thenComparing(Employee::getSalary))
    .collect(Collectors.toList());

上記のコードでは、Comparator.comparingメソッドとthenComparingメソッドを使用して、名前で比較し、同じ名前の場合は給与で比較します。

これらの例では、Stream APIのsortedメソッドを使用してリストをソートし、collectメソッドを使用してソート済みのリストを取得しています。

以上がJava 8 Stream APIを使用して従業員の名前と給与でソートする方法の例です。他にもさまざまな方法がありますが、これらの例を参考にしてください。