Java 8のストリームAPIを使用して、2つのEmployeeのArrayListをマージし、年齢でソートする方法


ステップ1: Employeeクラスを作成する まず、Employeeクラスを作成します。Employeeクラスには、名前と年齢の2つのプロパティが含まれています。

public class Employee {
    private String name;
    private int age;
    public Employee(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
}

ステップ2: 2つのArrayListを作成する 次に、2つのEmployeeのArrayListを作成します。それぞれのArrayListにいくつかのEmployeeオブジェクトを追加します。

List<Employee> list1 = new ArrayList<>();
list1.add(new Employee("John", 25));
list1.add(new Employee("Alice", 30));
List<Employee> list2 = new ArrayList<>();
list2.add(new Employee("Bob", 35));
list2.add(new Employee("Emily", 28));

ステップ3: マージとソート Java 8のストリームAPIを使用して、2つのArrayListをマージし、年齢でソートします。以下のコードを使用します。

List<Employee> mergedList = Stream.concat(list1.stream(), list2.stream())
        .sorted(Comparator.comparingInt(Employee::getAge))
        .collect(Collectors.toList());

上記のコードでは、Stream.concat()メソッドを使用して2つのArrayListをマージし、sorted()メソッドを使用して年齢でソートしています。最後に、collect()メソッドを使用して結果を新しいArrayListに収集します。

ステップ4: 結果の表示 最後に、マージされた結果を表示します。

for (Employee employee : mergedList) {
    System.out.println("Name: " + employee.getName() + ", Age: " + employee.getAge());
}

このコードを実行すると、以下の出力が得られます。

Name: John, Age: 25
Name: Emily, Age: 28
Name: Alice, Age: 30
Name: Bob, Age: 35

以上が、Java 8のストリームAPIを使用して2つのEmployeeのArrayListをマージし、年齢でソートする方法です。この方法を使用すると、簡潔で効率的なコードを書くことができます。