ادغام و تقسیم آرایه ها و کالکشن ها در جاوا

ادغام و تقسیم آرایه ها و کالکشن ها در جاوا

اشتراک گذاری

در این مقاله جمع و جور از وبسایت اوپن مایند، یاد خواهیم گرفت که چطور آرایه ها و کالکشن ها را در جاوا به همدیگر بچسبانیم یا از همدیگر جدا کنیم و اصطلاحاً آن ها را ادغام و یا تقسیم کنیم. برای این کار از امکانات جدید کار با stream ها در جاوا هم به خوبی استفاده می کنیم.

ادغام دو آرایه

برای شروع مثالی از ادغام دو آرایه با هم با استفاده از  Stream.concat را می بینیم:

ادغام دو کالکشن

حالا دو کالکشن را با هم ادغام می کنیم

 

ادغام دو کالکشن و اعمال Filter روی سایز عنصر

در مثال زیر ضمن ادغام دو کالکشن، به عنوان پارامتری برای فیلتر کردن اعضای موجود در کالکشن نهایی، از متد فیلتر روی طول رشته ها استفاده می کنیم. در واقع در این مثال تنها عناصری در کالکشن نهایی باقی می مانند که سایز آن ها دقیقاً برابر با سه کاراکتر باشد.

ادغام یک آرایه در یک رشته

حالا مثالی از ادغام یک آرایه در یک رشته در جاوا را می بینیم. در این مثال ادغام با استفاده از متد joining از Collectors انجام می شود.

 

ادغام یک کالکشن در یک رشته

حالا همین کار مثال بالا را اما با ادغام کالکشن در رشته، تکرار می کنیم.

ادغام یک Map در یک رشته

حالا می خواهیم در جاوا از یک Map یک رشته بسازیم. هدف ما این است که رشته ای شامل تمام محتویات ساختار Map بسازیم.

فرآیند این کار بسیار به مثال های قبل شبیه است، با این تفاوت که ابتدا یک قدم اضافه داریم تا دو بخش هر عنصر Map را به هم بچسبانیم و سپس تمام تکه های به هم چسبیه را در یک رشته و با استفاده از همان متد joining از Collectors کنار همدیگر قرار می دهیم.

 

ادغام کالکشن های تو در تو با یک رشته

حالا کار را کمی پیچیده تر کنیم. می خواهیم محتویات یک کالکشن تو در تو (کالکشنی که یک یا چند عنصر آن خود کالکشن است) را در یک رشته ادغام کنیم و کنر همدیگر قرار دهیم.

در مثال زیر ما ابتدا اعضای هر کالکشن داخلی را ادغام می کنیم و سپس رشته های به دست آمده ناشی از ادغام کالکشن های داخلی را به همدیگر می چسبانیم.

 

چگونگی برخورد با Null Value ها در هنگام ادغام و چسباندن

با استفاده از متد filter از Collection می توانیم در حین اتصال دو کالکشن مقادیر Null را نادیده بگیریم و حذف کنیم.

در مثال زیر چگونگی این کار را مشاهده خواهید کرد.

 

تقسیم یک کالکشن به دو تا

در مثال زیر می خواهیم یک کالکشن را از وسط به دو کالکشن جاوا تقسیم کنیم.

 

تقسیم یک آرایه از رشته ها به چندتا با توجه به طول هر رشته

در واقع در این مثال ما رشته های موجود در یک آرایه را بر اساس طول آن ها گروه بندی می کنیم.

 

تقسیم و جداسازی یک رشته به آرایه

بیایید مثالی از تقسیم بخش هایی از یک رشته و ریختن آن ها در آرایه را ببینیم.

 

تقسیم و جداسازی یک رشته به کالکشن

این مثال شبیه به مثال قبلی است. اما تنها یک قدم اضافه دارد و آن تبدیل آرایه به کالکشن است.

 

تقسیم و جداسازی یک رشته به Map

ما در این مثال رشته را دو بار تقسیم می کنیم. مرتبه اول برای به دست آوردن هر تکه که بر اساس ", " تقسیم انجام می شود و مرتبه دوم برای به دست آوردن کلید و مقدار برای هر عنصر Map که این مرتبه تکه های تقسیم شده قبلی بر اساس " = " تقسیم می شوند.

 

تقسیم یک رشته با چند جداکننده مختلف در کالکشن

به عنوان آخرین مثال، یک رشته را بر اساس چند کاراکتر جداکننده مختلف و با استفاده از عبارت منظم شامل آن ها، تقسیم می کنیم. همچنین رشته های جداشده خالی (متکشل از اسپس) را هم در کالکشن خروجی حذف می کنیم.

 

 

در این مثال ها، ما از سادگی String.split و از قدرت Stream در جاوا ۸ استفاده کردیم تا در حالت های مختلف آرایه ها و کالکشن ها در تقسیم یا در هم ادغام و الحاق کنیم.

 

نظرتان را برای ما بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *