එය ටිකක් ප්රමාද බවක් පෙනේ, නමුත් මෙන්න මගේ ශත දෙකයි. ප්රාථමික වර්ගයක් List<int>
ලෙස අපට තිබිය නොහැක, int
එබැවින් අපට තිබිය හැක්කේ එය පමණි List<Integer>
.
ජාවා 8 (int array)
int[] ints = new int[] {1,2,3,4,5};
List<Integer> list11 =Arrays.stream(ints).boxed().collect(Collectors.toList());
ජාවා 8 සහ ඊට පහළ (පූර්ණ සංඛ්යා අරාව)
Integer[] integers = new Integer[] {1,2,3,4,5};
List<Integer> list21 = Arrays.asList(integers); // returns a fixed-size list backed by the specified array.
List<Integer> list22 = new ArrayList<>(Arrays.asList(integers)); // good
List<Integer> list23 = Arrays.stream(integers).collect(Collectors.toList()); //Java 8 only
අරා ලැයිස්තු අවශ්යද?
අපට List
උදා: නිශ්චිත ලෙස ක්රියාත්මක කිරීමට අවශ්ය ArrayList
නම් අපට පහත පරිදි භාවිතා කළ හැකිය toCollection
:
ArrayList<Integer> list24 = Arrays.stream(integers)
.collect(Collectors.toCollection(ArrayList::new));
list21
ව්යුහාත්මකව වෙනස් කළ නොහැක්කේ ඇයි ?
අප භාවිතා Arrays.asList
කරන විට ආපසු ලබා දුන් ලැයිස්තුවේ ප්රමාණය සවි කර ඇත්තේ ආපසු ලබා දුන් ලැයිස්තුව නොවන java.util.ArrayList
නිසා නොව ඇතුළත අර්ථ දක්වා ඇති පුද්ගලික ස්ථිතික පන්තියකි java.util.Arrays
. එබැවින් අපි ආපසු ලබා දුන් ලැයිස්තුවෙන් අංග එකතු කළහොත් හෝ ඉවත් කළහොත්, එය UnsupportedOperationException
විසි කරනු ලැබේ. එබැවින් list22
ලැයිස්තුව වෙනස් කිරීමට අවශ්ය විට අප සමඟ යා යුතුය . අපට ජාවා 8 තිබේ නම් අපටද යා හැකිය list23
.
පැහැදිලි list21
වීමට නම් අපට ඇමතිය හැකි අර්ථයෙන් වෙනස් කළ හැකි list21.set(index,element)
නමුත් මෙම ලැයිස්තුව ව්යුහාත්මකව වෙනස් නොකළ හැකිය, එනම් ලැයිස්තුවෙන් අංග එකතු කිරීමට හෝ ඉවත් කිරීමට නොහැකිය. වැඩි විස්තර සඳහා ඔබට මගේ මෙම පිළිතුර පරීක්ෂා කළ හැකිය .
අපට වෙනස් කළ නොහැකි ලැයිස්තුවක් අවශ්ය නම් අපට එය මෙසේ ඔතා ගත හැකිය:
List<Integer> list 22 = Collections.unmodifiableList(Arrays.asList(integers));
සැලකිල්ලට ගත යුතු තවත් කරුණක් නම්, මෙම ක්රමය Collections.unmodifiableList
මඟින් නිශ්චිත ලැයිස්තුවේ වෙනස් කළ නොහැකි දර්ශනයක් ලබා දීමයි . වෙනස් කළ නොහැකි දර්ශන එකතුවක් යනු වෙනස් කළ නොහැකි එකතුවක් වන අතර එය පසුබිම් එකතුවක් පිළිබඳ දර්ශනයකි. පසුබිම් එකතුවෙහි වෙනස්කම් තවමත් සිදුවිය හැකි බව සලකන්න, ඒවා සිදුවුවහොත් ඒවා වෙනස් කළ නොහැකි දර්ශනය හරහා දැකිය හැකිය.
ජාවා 9 සහ 10 හි අපට සැබවින්ම වෙනස් කළ නොහැකි ලැයිස්තුවක් තිබිය හැකිය.
සැබවින්ම වෙනස් කළ නොහැකි ලැයිස්තුව
ජාවා 9:
String[] objects = {"Apple", "Ball", "Cat"};
List<String> objectList = List.of(objects);
ජාවා 10 (සැබවින්ම වෙනස් කළ නොහැකි ලැයිස්තුව) ආකාර දෙකකින්:
List.copyOf(Arrays.asList(integers))
Arrays.stream(integers).collect(Collectors.toUnmodifiableList());
Arrays.asList(new int[] { 1, 2, 3 })
; එම නිසා නියත, ජාවා 1.4.2 දී සම්පාදනය කළේ නැතint[]
යනු නොහැකි වූObject[]
.