Avatar ·

Java 8: تحويل List<V> إلى Map<K, V> باستخدام Stream API

مرحباً بالجميع! بدأت في تعلم Java 8 وواجهت مشكلة تبدو بسيطة لكنني لا أستطيع حلها. لدي قائمة من الكائنات `Person`: ```java public class Person { private int id; private String name; private int age; // المُنشئ، getters و setters } ``` أحتاج إلى تحويل `List` إلى `Map`، حيث يكون المفتاح هو `id` والقيمة هي الكائن `Person` نفسه. سابقاً (قبل Java 8) كنت أفعل ذلك عبر حلقة: ```java List list = Arrays.asList( new Person(1, "Alice", 30), new Person(2, "Bob", 25), new Person(3, "Charlie", 35) ); Map map = new HashMap<>(); for (Person p : list) { map.put(p.getId(), p); } ``` لكنني سمعت أنه في Java 8 يمكن فعل ذلك بشكل أجمل باستخدام lambdas و streams. جربت كتابة شيء مثل: ```java Map map = list.stream().collect(Collectors.toMap(person -> person.getId(), person -> person)); ``` لكن IDE يشتكي...