البرمجة

تحويل Map إلى List باستخدام Java 9 Streams

لتحويل Map>> إلى List باستخدام Java 9 Stream API، يمكنك استخدام flatMap لتحويل كل Entry في ال Map إلى TestSession ومن ثم جمعها جميعًا في List. الكود يمكن أن يكون كالتالي:

java
import java.util.List; import java.util.Map; import java.util.AbstractMap.SimpleEntry; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { Map>> inputData = Map.of( "ABC", List.of(new SimpleEntry<>(Parameter.Foo, "hello"), new SimpleEntry<>(Parameter.Bar, "bye")), "DEF", List.of(new SimpleEntry<>(Parameter.Baz, "hello1"), new SimpleEntry<>(Parameter.Foo, "bye1")) ); List testList = inputData.entrySet().stream() .flatMap(entry -> entry.getValue().stream() .map(innerEntry -> new TestSession(entry.getKey(), innerEntry.getKey(), innerEntry.getValue()))) .collect(Collectors.toList()); // Print testList testList.forEach(System.out::println); } private static class TestSession { final String mServiceName; final Parameter mParameter; final String mData; public TestSession(final String aServiceName, final Parameter aParameter, final String aData) { mServiceName = aServiceName; mParameter = aParameter; mData = aData; } @Override public String toString() { return "TestSession{" + "mServiceName='" + mServiceName + '\'' + ", mParameter=" + mParameter + ", mData='" + mData + '\'' + '}'; } } enum Parameter { Foo, Bar, Baz } }

هذا الكود يستخدم flatMap لتحويل كل Entry في inputData إلى TestSession، حيث يتم استخدام قيمة المفتاح كـ mServiceName وقيم Parameter وقيم String من كل Entry لإنشاء TestSession.

المزيد من المعلومات

بالطبع! في هذا الكود، يتم استخدام flatMap لتحويل Map إلى List باستخدام Java 9 Stream API.

  • تُمثِّل Map>> inputData مدخلات البيانات، حيث تحتوي كل مفتاح على قائمة من SimpleEntry التي تحتوي على Parameter وString.
  • تحتوي class TestSession على ثلاثة حقول: mServiceName (اسم الخدمة) و mParameter (المعامل) و mData (البيانات).
  • تُستخدم flatMap لتحويل قائمة القيم (List>) المرتبطة بكل مفتاح إلى تدفق من TestSession، حيث يُنشئ كل TestSession باستخدام قيم المفتاح والمعامل والبيانات من SimpleEntry.
  • يتم جمع جميع TestSession في List باستخدام collect(Collectors.toList()).
  • toString يتم استخدامها لطباعة كل TestSession بشكل جميل.

يمكنك تجربة تشغيل الكود لرؤية النتائج المخرجة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر