பல ஆரம்பநிலையாளர்கள் ArrayS.asList() முறையின் கருத்தை தரவு கட்டமைப்புடன் ArrayList உடன் குழப்புகிறார்கள். அவை தோற்றத்திலும் ஒரே மாதிரியாக இருந்தாலும், செயல்படுத்தும் போது இவை இரண்டும் முற்றிலும் வேறுபட்டவை. இந்த இடுகையில், நாங்கள் Arrays.asList() முறையின் அடிப்படைப் பயன்பாட்டைப் பற்றி பேசுவோம் , மேலும் அது தொடர்பான சில குழப்பங்களை நீக்குவோம்.
Arrays.asList() ஏன் பயன்படுத்தப்படுகிறது?
நீங்கள் பட்டியலாக மாற்ற வேண்டிய வரிசை உங்களிடம் இருந்தால், இந்த நோக்கத்திற்காக java.util.Arrays ஒரு ரேப்பர் Arrays.asList() ஐ வழங்குகிறது . எளிமையான வார்த்தைகளில், இந்த முறை ஒரு வரிசையை ஒரு அளவுருவாக எடுத்து ஒரு பட்டியலை வழங்குகிறது. ஜாவா இயங்குதள API இன் முக்கிய பகுதிகள் சேகரிப்பு கட்டமைப்பு அறிமுகப்படுத்தப்படுவதற்கு முன்பே உருவாக்கப்பட்டன. எனவே எப்போதாவது, நீங்கள் பாரம்பரிய வரிசைகள் மற்றும் நவீன சேகரிப்புகளுக்கு இடையில் மொழிபெயர்க்க வேண்டியிருக்கும். இந்த செயல்பாடு சேகரிப்புகள் மற்றும் வரிசை அடிப்படையிலான API களுக்கு இடையே ஒரு இணைப்பாக செயல்படுகிறது.
உதாரணமாக
பின்வரும் உதாரணத்தைப் பாருங்கள்:
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
public class ArraysAsListDemo {
public static void main(String[] args) {
String[] teamMembers = {"Amanda", "Loren", "Keith"};
// using aslist() method
List teamList = Arrays.asList(teamMembers);
System.out.println("List : " + teamList);
HashSet teamHashSet = new HashSet<>(Arrays.asList(teamMembers));
System.out.println("HashSet : " + teamHashSet);
}
}
வெளியீடு:
பட்டியல் : [அமண்டா, லோரன், கீத்] ஹாஷ்செட் : [கீத், லோரன், அமண்டா] // ஹாஷ்செட் ஒழுங்கை பராமரிக்கவில்லை
Arrays.asList() மற்றும் ArrayList எவ்வாறு வேறுபடுகின்றன?
நீங்கள் ஒரு வரிசையில் Arrays.asList() முறையை அழைக்கும் போது , திரும்பிய பொருள் ஒரு வரிசைப்பட்டியல் அல்ல ( பட்டியல் இடைமுகத்தின் மறுஅளவிடக்கூடிய வரிசை செயல்படுத்தல் ). இது அடிப்படை வரிசையை அணுகும் get() மற்றும் set() முறைகளைக் கொண்ட ஒரு பார்வைப் பொருளாகும். வரிசையின் அளவை மாற்றும் அனைத்து முறைகளும், அதனுடன் தொடர்புடைய செயலியின் சேர்() அல்லது அகற்று() போன்றவை ஆதரிக்கப்படாத ஆபரேஷன்எக்செப்சனை வீசுகின்றன . ஜாவா நிரல் வெற்றிகரமாக தொகுக்கப்படுவதற்குக் காரணம், ஆனால் இயக்க நேர விதிவிலக்கு அளிக்கிறது, வெளிப்படையாக, ஒரு "பட்டியல்" இதன் விளைவாக திரும்பியது.Arrays.asList() . அனைத்து சேர்த்தல்/நீக்குதல் செயல்பாடுகள் அனுமதிக்கப்படும் இடத்தில். ஆனால், அடிப்படை தரவு அமைப்பு மறுஅளவிட முடியாத "வரிசை" என்பதால், இயக்க நேரத்தில் விதிவிலக்கு அளிக்கப்படுகிறது. அது எப்படி இருக்கிறது என்பதைக் காட்டும் ஒரு துணுக்கு இதோ:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
public static void main(String[] args) {
Integer[] diceRoll = new Integer[6];
//using aslist() method
List diceRollList = Arrays.asList(diceRoll);
System.out.println(diceRollList);
// using getters and setters to randomly access the list
diceRollList.set(5, 6);
diceRollList.set(0, 1);
System.out.println(diceRollList.get(5));
System.out.println(diceRollList.get(1));
System.out.println(diceRollList);
diceRollList.add(7); // Add a new Integer to the list
}
}
வெளியீடு:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] நூல் "முக்கிய" java.lang இல் விதிவிலக்கு.Java.util.AbstractList.add (AbstractList. java:148) java.util.AbstractList.add(AbstractList.java:108) at ArraysAsListDemo.main(ArraysAsListDemo.java:20)
asList() முறையைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள்
Java SE 5.0 இன் படி, asList() முறையானது மாறுபட்ட எண்ணிக்கையிலான வாதங்களைக் கொண்டிருப்பதாக அறிவிக்கப்படுகிறது. ஒரு வரிசையை கடந்து செல்வதற்கு பதிலாக, நீங்கள் தனிப்பட்ட கூறுகளையும் அனுப்பலாம். உதாரணத்திற்கு:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
public static void main(String[] args) {
List seasons = Arrays.asList("winter", "summer", "spring", "fall");
List odds = Arrays.asList(1, 3, 5, 7, 9);
System.out.println(seasons);
System.out.println(odds);
}
}
வெளியீடு:
[குளிர்காலம், கோடை, வசந்தம், இலையுதிர் காலம்] [1, 3, 5, 7, 9]
GO TO FULL VERSION