ステップ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をマージし、年齢でソートする方法です。この方法を使用すると、簡潔で効率的なコードを書くことができます。