tl; dr
Map.of…ජාවා 9 සහ ඊට පසු ක්රම භාවිතා කරන්න .
Map< String , String > animalSounds =
Map.of(
"dog" , "bark" , // key , value
"cat" , "meow" , // key , value
"bird" , "chirp" // key , value
)
;
Map.of
Map.ofඔබට අවශ්ය දේ කිරීමට ජාවා 9 ස්ථිතික ක්රම මාලාවක් එක් කළේය : වචනාර්ථයෙන් වාක්ය ඛණ්ඩයක් Mapභාවිතා කරමින් වෙනස් කළ නොහැකි ක්ෂණික කරන්න .
සිතියම (ඇතුළත් කිරීම් එකතුවක්) වෙනස් කළ නොහැකි බැවින් ක්ෂණික කිරීමෙන් පසු ඔබට ඇතුළත් කිරීම් හෝ ඉවත් කළ නොහැක. එසේම, එක් එක් පිවිසුමේ යතුර සහ වටිනාකම වෙනස් කළ නොහැකි බැවින් වෙනස් කළ නොහැක. NULL වලට අවසර නැත, අනුපිටපත් යතුරු සඳහා අවසර නැත, සහ සිතියම්ගත කිරීමේ අනුපිළිවෙල අත්තනෝමතික ලෙස වෙනත් නීති සඳහා ජාවඩොක් බලන්න .
මෙම ක්රම දෙස බලමු, සතියේ දින සිතියමක් සඳහා නියැදි දත්ත කිහිපයක් භාවිතා කරමින් එදින වැඩ කරනු ඇතැයි අප අපේක්ෂා කරන පුද්ගලයෙකුට.
Person alice = new Person( "Alice" );
Person bob = new Person( "Bob" );
Person carol = new Person( "Carol" );
Map.of()
Map.ofහිස් නිර්මාණය කරයි Map. වෙනස් කළ නොහැකි බැවින් ඔබට ඇතුළත් කිරීම් එකතු කළ නොහැක. එවැනි සිතියමක් සඳහා උදාහරණයක් මෙහි ඇතුළත් කර නැති හිස් ය.
Map < DayOfWeek, Person > dailyWorkerEmpty = Map.of();
dailyWorkerEmpty.toString (): {}
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
)
;
weekendWorker.toString (): {SUNDAY = පුද්ගලයා {name = 'Bob'}, SATURDAY = පුද්ගලයා {name = 'Alice'}}
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 )
);
weekdayWorker.toString (): {WEDNESDAY = පුද්ගලයා {name = 'Bob'}, TUESDAY = පුද්ගලයා {name = 'Bob'}, THURSDAY = පුද්ගලයා {name = 'Carol'}, FRIDAY = පුද්ගලයා {name = 'Carol'} , සඳුදා = පුද්ගලයා {name = 'ඇලිස්'}}
Map.copyOf
ජාවා 10 ක්රමය එකතු කළේය Map.copyOf . පවතින සිතියමක් පසුකර, එම සිතියමේ වෙනස් කළ නොහැකි පිටපතක් ආපසු ලබා ගන්න.
සටහන්
හරහා ඉදිරිපත් සිතියම් iterator පිණිස බව දැනුම් Map.ofවේ නොහැකි සහතික. ඇතුළත් කිරීම් අත්තනෝමතික අනුපිළිවෙලක් ඇත. පෙනෙන අනුපිළිවෙල මත පදනම්ව කේත ලියන්න එපා, ප්රලේඛනය අනතුරු අඟවන පරිදි ඇණවුම වෙනස් විය යුතුය.
මේ සියල්ල සටහන Map.of…ක්රම ආපසු Mapක ස්නායු පන්තියේ . යටින් පවතින කොන්ක්රීට් පන්තිය ජාවාහි එක් අනුවාදයක සිට තවත් අනුවාදයකට වෙනස් විය හැකිය. මෙම නිර්නාමික භාවය මඟින් ඔබේ විශේෂිත දත්ත වලට වඩාත් ගැලපෙන ඕනෑම දෙයක් විවිධ ක්රියාත්මක කිරීම් වලින් තෝරා ගැනීමට ජාවාට හැකියාව ලැබේ. උදාහරණයක් ලෙස, ඔබේ යතුරු එනූමයකින් පැමිණියේ නම් , ජාවා EnumMapආවරණ යටින් භාවිතා කරයි.