Avatar ·

كيفية تحويل قائمة من القوائم (List<List<T>>) إلى قائمة مسطحة (List<T>) في Java 8؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم Java 8 وStream API، وواجهت هذه المشكلة. لدي هيكل بيانات يمثل قائمة من قوائم السلاسل النصية. على سبيل المثال، أحصل على بيانات من ملف CSV، حيث كل صف هو قائمة من الحقول، والملف بأكمله هو قائمة من هذه الصفوف. أحتاج إلى دمج كل هذه الصفوف في قائمة واحدة مشتركة، أي "تسوية" الهيكل المتداخل. إليك مثال مبسط لما لدي: ```java List> listOfLists = Arrays.asList( Arrays.asList("a", "b", "c"), Arrays.asList("d", "e"), Arrays.asList("f", "g", "h", "i") ); ``` أريد الحصول على الناتج التالي: ```java List flatList = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i"); ``` أعلم أنه في Java القديمة (قبل الإصدار 8) كان يمكن فعل ذلك باستخدام حلقات for-each المتداخلة، لكنها طريقة مرهقة. سمعت أنه في Java 8 هناك طريقة أنيقة لفعل ذلك باستخدام streams، لكنني لا أستطيع فهمها. جربت شيئًا مثل `listOfLists.stream().collect(...)`،