TL; ড
Map.of…জাভা 9 এবং তারপরে পদ্ধতিগুলি ব্যবহার করুন ।
Map< String , String > animalSounds =
Map.of(
"dog" , "bark" , // key , value
"cat" , "meow" , // key , value
"bird" , "chirp" // key , value
)
;
Map.of
জাভা 9 Map.ofআপনি যা চান ঠিক তেমনMap করতে স্ট্যাটিক পদ্ধতিগুলির একটি সিরিজ যুক্ত করেছে : আক্ষরিক সিনট্যাক্স ব্যবহার করে একটি অপরিবর্তনীয়কে ইনস্ট্যান্ট করুন ।
মানচিত্র (প্রবেশের সংকলন) অপরিবর্তনীয়, তাই আপনি তাত্ক্ষণিকতার পরে এন্ট্রি যুক্ত বা সরাতে পারবেন না। এছাড়াও, প্রতিটি প্রবেশের কী এবং মান অপরিবর্তনীয়, পরিবর্তন করা যায় না। জাভাদোক দেখুনঅন্যান্য নিয়মের জন্য , যেমন কোনও এনএলএল অনুমোদিত নয়, কোনও সদৃশ কী অনুমোদিত নয় এবং ম্যাপিংয়ের পুনরাবৃত্তির ক্রমটি স্বেচ্ছাসেবী।
আসুন এই পদ্ধতিগুলিটি দেখুন, আমরা আশা করি এমন কোনও ব্যক্তির কাছে সপ্তাহের মানচিত্রের জন্য কিছু নমুনা ডেটা ব্যবহার করে day দিনটি কাজ করবে।
Person alice = new Person( "Alice" );
Person bob = new Person( "Bob" );
Person carol = new Person( "Carol" );
Map.of()
Map.ofএকটি খালি তৈরি করে Map। সংশোধনযোগ্য নয়, সুতরাং আপনি এন্ট্রি যোগ করতে পারবেন না। এ জাতীয় মানচিত্রের উদাহরণ এখানে কোনও প্রবেশপত্র খালি নেই empty
Map < DayOfWeek, Person > dailyWorkerEmpty = Map.of();
দৈনিক ওয়ার্কারএম্পটি.টো স্ট্রিং (): {}
Map.of( … )
Map.of( k , v , k , v , …)একাধিক পদ্ধতি যা 1 থেকে 10 কী-মান জোড়ায় নিয়ে যায়। এখানে দুটি এন্ট্রি উদাহরণ।
Map < DayOfWeek, Person > weekendWorker =
Map.of(
DayOfWeek.SATURDAY , alice , // key , value
DayOfWeek.SUNDAY , bob // key , value
)
;
উইকএন্ডওয়ার্কার.টোস্ট্রিং (): U রবিবার = ব্যক্তি = নাম = 'বব'}, স্যাটুরডয় = ব্যক্তি {নাম = 'এলিস'}
Map.ofEntries( … )
Map.ofEntries( Map.Entry , … )Map.Entryইন্টারফেস প্রয়োগকারী যেকোন সংখ্যক অবজেক্ট গ্রহণ করে । জাভা সেই ইন্টারফেস প্রয়োগকারী দুটি ক্লাসকে বান্ডিল করে, একটি পরিবর্তনীয়, অন্যটি অপরিবর্তনীয়: AbstractMap.SimpleEntry, AbstractMap.SimpleImmutableEntry। তবে আমাদের কোনও কংক্রিট শ্রেণি নির্দিষ্ট করার দরকার নেই। আমাদের কেবল Map.entry( k , v )পদ্ধতিটি কল করতে হবে , আমাদের কী এবং আমাদের মানটি পাস করতে হবে এবং আমরা কিছু শ্রেণি প্রয়োগকারী Map.Entryইন্টারফেসের কোনও বস্তু ফিরে পাই ।
Map < DayOfWeek, Person > weekdayWorker = Map.ofEntries(
Map.entry( DayOfWeek.MONDAY , alice ) , // Call to `Map.entry` method returns an object implementing `Map.Entry`.
Map.entry( DayOfWeek.TUESDAY , bob ) ,
Map.entry( DayOfWeek.WEDNESDAY , bob ) ,
Map.entry( DayOfWeek.THURSDAY , carol ) ,
Map.entry( DayOfWeek.FRIDAY , carol )
);
উইকডে ওয়ার্কার.টো স্ট্রিং (): ED WEDNESDAY = ব্যক্তি {নাম = 'বব'}, শিক্ষাবৃত্তি = ব্যক্তি {নাম = 'বব'}, থার্ডসাইডে = ব্যক্তি {নাম = 'ক্যারল'}, ফ্রাইডে = ব্যক্তি {নাম = 'ক্যারল'} , সোমবার = ব্যক্তি {নাম = 'এলিস'}}
Map.copyOf
জাভা 10 পদ্ধতি যুক্ত করেছে Map.copyOf। একটি বিদ্যমান মানচিত্র পাস করুন, সেই মানচিত্রের একটি অপরিবর্তনীয় অনুলিপি ফিরে পান।
মন্তব্য
লক্ষ করুন যে, Maps- এর মাধ্যমে উত্পাদিত পুনরুক্তিকারীর অর্ডার Map.ofহয় না নিশ্চিত। এন্ট্রিগুলির একটি স্বেচ্ছাসেবী আদেশ রয়েছে। অর্ডারটি পরিবর্তিত সাপেক্ষে ডকুমেন্টেশন সতর্ক করে বলে দেখা আদেশের ভিত্তিতে কোডটি লিখবেন না।
মনে রাখবেন যে, এই সব Map.of…পদ্ধতি একটি ফিরতি Mapএর একটি অনির্দিষ্ট বর্গ । অন্তর্নিহিত কংক্রিট বর্গ এমনকি জাভার এক সংস্করণ থেকে অন্য সংস্করণে পরিবর্তিত হতে পারে। এই অজ্ঞাতনামা জাভাটিকে বিভিন্ন বাস্তবায়ন থেকে চয়ন করতে সক্ষম করে, যাই হোক না কেন সর্বোত্তমভাবে আপনার নির্দিষ্ট ডেটা ফিট করে। উদাহরণস্বরূপ, যদি আপনার কীগুলি এনাম থেকে আসে তবে জাভা EnumMapকভারগুলির নীচে একটি ব্যবহার করতে পারে ।