💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ امیر رحمانی
تغییر کالکشن‌ها به تایپی خاصی از کالکشن
جامعه جاوا (وب و دسکتاپ) ایجاد شده در ۲۸ شهریور ۱۴۰۱

سلام استاد وقت بخیر

استاد بعد از اینکه کالکشن ساخته شد از طریق of تو جاو 9 ، بخوایم تبدیل کنیم مثلا به linkedHashSet میتونیم به طریق‌های زیر این کارو انجام بدیم حالا هم بکمک استریم‌ها یا به عنوان پارامتر بیایم به کنستراکتور اون تایپ پاس بدیم:

inal Set<Integer> integers = Set.of(1, 2, 3); 
//first way
final Set<Integer> integerHashSet = new LinkedHashSet<>(integers);
//second way
final Set<Integer> lists = integers.stream().collect(Collectors.toCollection(LinkedHashSet::new));

ولی استاد یک مشکلی هست اینا ترتیب رو نگه نمیدارن و فقط تبدیل به اون تایپ میکنن اگه بخوایم ترتیب المان هایی که وارد کردیم حفظ بشه باید چیکار کرد؟

2- وقتی کالکشن رو ما تبدیل می‌کنیم به تایپ خاص فک کنم دیگه immutable نباشن کالکشن‌های ما، باید بصورت دستی immutable کنیم کالکشن هارو دوباره ؟

3- از طریق استریم‌ها هم میشه عناصر رو immutable کرد ؟

Collections.unmodifiableCollection(collection);

سلا امیر جان،


مثل همیشه سوالات خوبی پرسیدی.


سوال اول : کدام کالکشن ترتیب رو رعایت میکرد؟ باید به اون کالکشن تبدیل کنید. جواب رو میزارم خودتون پیدا کنید. توی کاکشنوها بهش اشاره کردم.


سوال دوم : میتونید از immutableCollection استفاده کنید که در جلسات آینده بهش اشاره میکنم.


سوال سوم : بله. در جلسات آینده بهش اشاره میکنم.


اگر مشکلی بود خبر بده.

بهترین پاسخ
سپهر نامدار ۲۸ شهریور ۱۴۰۱، ۰۸:۳۶