அறிமுகம்

ஏறக்குறைய ஒவ்வொரு நிரலும் சில தரவுகளை சேமிக்க வேண்டும். இது சரங்கள் மற்றும் எண்கள், பொருள்கள் மற்றும் பலவாக இருக்கலாம். வரிசைகள் ஒரு சிறந்த சேமிப்பக தீர்வு. ஆனால் வரிசைகளுக்கு சில வரம்புகள் உள்ளன. எடுத்துக்காட்டாக, அவற்றின் அளவு சரி செய்யப்பட்டது, உறுப்புகளை அகற்ற முடியாது, மேலும் நீங்கள் கூறுகளை நடுவில் செருக முடியாது. இவை மற்றும் பிற வரம்புகளைச் சமாளிக்க சேகரிப்புகள் உருவாக்கப்பட்டன. அனைத்து வகையான சேகரிப்புகளும் (அவற்றில் பல உள்ளன, இந்த பாடத்தில் நாம் பின்னர் பார்ப்போம்) தங்களை மாறும் வகையில் அளவை மாற்றிக்கொள்ளும் திறனைக் கொண்டுள்ளது. சில சேகரிப்பு வகைகள் ஆர்டர் செய்யப்பட்ட கூறுகளைச் சேமித்து, அவை சேர்க்கப்படும்போது தானாகவே புதிய கூறுகளை வரிசைப்படுத்தலாம்.

இந்த பாடத்தில், ஜாவா சேகரிப்பு கட்டமைப்பில் உள்ள அடிப்படை சேகரிப்புகளின் வகுப்பு படிநிலையைப் பற்றி அறிந்து கொள்வோம் . நிலையான ஜாவா சேகரிப்பு கட்டமைப்பின் திறன்களை விரிவுபடுத்தும் பல்வேறு மாற்று நூலகங்களும் உள்ளன . இவற்றில் மிகவும் பிரபலமானது கொய்யா (கூகுள் கலெக்ஷன்ஸ் லைப்ரரி).

*வரைபடத்தில் அனைத்து இடைமுகங்களும் வகுப்புகளும் குறிப்பிடப்படவில்லை. புரிந்துகொள்வதை எளிதாக்கும் வகையில் சில தவிர்க்கப்பட்டன.

அடிப்படை இடைமுகங்கள்

மீதமுள்ள வகுப்புகள் மற்றும் இடைமுகங்களை உருவாக்க இரண்டு அடிப்படை இடைமுகங்கள் செயல்படுத்தப்படுகின்றன என்பதை வரைபடம் காட்டுகிறது.

இந்த இடைமுகங்களைப் பார்ப்போம்:

  1. சேகரிப்பு - தனிமங்களின் (பொருள்கள்) தொகுப்பைக் கொண்ட ஒரு சாதாரண சேகரிப்பு. இந்தத் தொகுப்பில் உறுப்புகளுடன் பணிபுரிவதற்கான அடிப்படை முறைகள் உள்ளன: செருகு ( சேர் , addAll ), அகற்று ( நீக்கு , அகற்று , அழி ), தேடு ( கொண்டிருக்கிறது , அனைத்தையும் உள்ளடக்கியது ), சேகரிப்பு காலியாக உள்ளதா ( isEmpty ) மற்றும் அளவைப் பெறுங்கள் ( அளவு ).

  2. வரைபடம் - முக்கிய மதிப்பு ஜோடிகளாக கட்டமைக்கப்பட்ட தொகுப்பு. மேலும், வரைபடத்தில் உள்ள ஒவ்வொரு விசையும் தனித்துவமானது : இரண்டு விசைகளும் ஒரே மாதிரியான மதிப்புகளைக் கொண்டிருக்கவில்லை. இந்த தொகுப்பு சில நேரங்களில் அகராதி என்றும் அழைக்கப்படுகிறது. வரைபடம் ஒரு தனி இடைமுகம். இது சேகரிப்பு இடைமுகத்தை செயல்படுத்தாது , ஆனால் ஜாவா சேகரிப்பு கட்டமைப்பின் ஒரு பகுதியாகும்.

வரைபடத்தில் உள்ள உறுப்புகளுடன் வேலை செய்வதற்கான பயனுள்ள முறைகள் :

  • செருகு ( போடு , அனைத்தையும் போடு )

  • பெறு ( பெறு , கீசெட் , மதிப்புகள் , உள்ளீடு

  • அகற்று ( நீக்கு , அழி )

  • தேடல் ( உள்ளடங்கும் கீ , மதிப்பைக் கொண்டுள்ளது )

  • சேகரிப்பு காலியாக உள்ளதா என்பதைச் சரிபார்க்கவும் ( isEmpty )

  • அளவைப் பெறுங்கள் ( அளவு )

இப்போது அவை ஒவ்வொன்றையும் பற்றி மேலும் பேசலாம்.

சேகரிப்பு இடைமுகம்

சேகரிப்பு இடைமுகம் இட்டரபிள் இடைமுகத்தை நீட்டிக்கிறது , இது ஒற்றை முறையைக் கொண்டுள்ளது: iterator () . எங்களைப் பொறுத்தவரை, மீட்பரேட்டரைப் பெறுகின்ற எந்தவொரு சேகரிப்பும் மீண்டும் மீண்டும் வழங்க முடியும்.

இடிரேட்டர் என்பது ஒரு சிறப்புப் பொருளாகும், இது எந்த சேகரிப்பின் கூறுகளையும் அதன் குறிப்பிட்ட செயலாக்கத்தைப் பொருட்படுத்தாமல் அணுகுவதற்குப் பயன்படுத்தலாம்.

3 இடைமுகங்கள் சேகரிப்பு இடைமுகத்தைப் பெறுகின்றன என்பதை படம் காட்டுகிறது : பட்டியல் , வரிசை மற்றும் அமை . இப்போது அவை ஒவ்வொன்றையும் சுருக்கமாகப் பார்ப்போம்.

பட்டியல் என்பது நகல் மதிப்புகளை அனுமதிக்கும் வரிசைப்படுத்தப்பட்ட தொகுப்பாகும். ஒரு பட்டியலின் ஒரு குறிப்பிட்ட அம்சம்என்னவென்றால், அதன் கூறுகள் எண்ணிடப்பட்டு, எண் (குறியீடு) மூலம் அணுகலாம்.

ஒரு வரிசை உறுப்புகளை வரிசையில் சேர்த்த வரிசையில் சேமிக்கிறது.

பட்டியலைப் போலன்றி, ஒரு தொகுப்பு என்பது மீண்டும் மீண்டும் கூறுகளை அனுமதிக்காத வரிசைப்படுத்தப்படாத தொகுப்பைக் குறிக்கிறது. செட் இடைமுகம் ஒரு கணித தொகுப்பின் கருத்துக்கு ஒத்திருக்கிறது .

வரைபட இடைமுகத்தின் செயலாக்கங்கள்

வரைபட இடைமுகம் தனித்துவமான விசைகள் மற்றும் மதிப்புகளுக்கு இடையில் ஒரு மேப்பிங்கைக் குறிக்கிறது என்பதை நாம் பார்க்கலாம் .


interface Map<K, V>

K என்பது விசைகளின் வகை மற்றும் V என்பது சேமிக்கப்பட்ட மதிப்புகளின் வகை.

விசையைப் பயன்படுத்தி, வரைபடத்திலிருந்து தரவைப் பிரித்தெடுக்கலாம் . வரைபடத்தில் ஒரு உறுப்பைச் சேர்க்க , நாம் ஒரு விசையையும் மதிப்பையும் குறிப்பிட வேண்டும்.

வரைபடத்தின் சில செயலாக்கங்களைப் பார்ப்போம் :

  1. HashMap என்பது ஹாஷ் அட்டவணைகளை அடிப்படையாகக் கொண்ட வரைபடத்தின் செயலாக்கமாகும்இது பூஜ்ய உட்பட எந்த வகையின் விசைகளையும் மதிப்புகளையும் சேமிக்க முடியும். உறுப்புகளின் வரிசைக்கு உத்தரவாதம் இல்லை.

  2. LinkedHashMap என்பது தரவு கட்டமைப்பாகும், இது தரவுகளை இணைக்கப்பட்ட உறுப்புகளின் பட்டியலாக சேமிக்கிறது. உறுப்புகள் அவை சேர்க்கப்பட்ட வரிசையில் பட்டியலில் தோன்றும்.

  3. TreeMap வரிசைப்படுத்தப்பட்ட வரைபட இடைமுகத்தை செயல்படுத்துகிறது( NavigableMap இடைமுகம் வழியாக). இந்த கட்டமைப்பில் உள்ள உறுப்புகள் வரிசைப்படுத்தப்பட்ட வரிசையில் சேமிக்கப்படும் (புதிய உறுப்பு சேர்க்கப்படும் போது, ​​சேகரிப்பு தானாகவே வரிசைப்படுத்தப்படும்). வரிசைப்படுத்தப்பட்ட தரவை வேகமாக மீட்டெடுப்பதன் மூலம் பெரிய அளவில் சேமிப்பதற்கு TreeMap சிறந்தது.

காலாவதியான சேகரிப்புகள்:

Java முந்தைய பதிப்புகளிலிருந்து வழக்கற்றுப் போன சேகரிப்புகளைக் கொண்டுள்ளது (பின்னோக்கிய இணக்கத்தன்மையைப் பராமரிக்க). இந்தப் பழைய சேகரிப்புகளை புதிய குறியீட்டில் பயன்படுத்தக் கூடாது:

  • எண்ணுதல் - இட்டரேட்டர் இடைமுகத்திற்கு ஒப்பானது;

  • திசையன் — வரிசைப்படுத்தப்பட்ட உறுப்புகளின் பட்டியல் மற்றும் ArrayList வகுப்பிற்கு ஒப்பானது;

  • ஸ்டாக் — ஸ்டேக் தரவு கட்டமைப்பின் செயல்படுத்தல், இது புத்தகங்களின் தொகுப்புடன் நீங்கள் எவ்வாறு தொடர்புகொள்வது போன்ற கூறுகளைச் சேமித்து கையாளுகிறது. அடுக்கில் ( புஷ் ) உறுப்புகளைச் சேர்ப்பதற்கும் அவற்றை அகற்றுவதற்கும் ( பாப் ) முறைகள் உள்ளன;

  • அகராதி — வரைபட இடைமுகத்திற்கு ஒப்பானது, ஆனால் இது ஒரு சுருக்க வர்க்கம்;

  • Hashtable HashMap க்கு ஒப்பானது .

இந்த கட்டுரையில் சேகரிப்பு கட்டமைப்பைப் பற்றி மேலும் படிக்கலாம் .