ஜாவாவில் ஹேஷ்மேப் மற்றும் லிங்க்ட்ஹேஷ்மேப் இடையே உள்ள வேறுபாடு

நூலாசிரியர்: Laura McKinney
உருவாக்கிய தேதி: 2 ஏப்ரல் 2021
புதுப்பிப்பு தேதி: 10 மே 2024
Anonim
ஜாவாவில் ஹேஷ்மேப் மற்றும் லிங்க்ட்ஹேஷ்மேப் இடையே உள்ள வேறுபாடு - தொழில்நுட்பம்
ஜாவாவில் ஹேஷ்மேப் மற்றும் லிங்க்ட்ஹேஷ்மேப் இடையே உள்ள வேறுபாடு - தொழில்நுட்பம்

உள்ளடக்கம்


HashMap மற்றும் LinkedHashMap ஆகியவை வகுப்புகள், ஒருவருக்கொருவர் மிகவும் ஒத்தவை மற்றும் வரைபடத்தை உருவாக்கப் பயன்படுகின்றன. வரைபடத்தில் உள்ள கூறுகளை சேமிக்க ஹாஷ் அட்டவணையைப் பயன்படுத்த ஹாஷ்மேப் வகுப்பு சுருக்கம் வகுப்பை விரிவுபடுத்துகிறது. LinkedHashMap வகுப்பு வரைபடத்தில் உள்ளீடுகளை அவற்றின் செருகும் வரிசையின் அடிப்படையில் பராமரிக்கிறது. HashMap மற்றும் LinkedHashMap ஐ ஒருவருக்கொருவர் வேறுபடுத்துகின்ற அம்சம் அதுதான் hashmap வரைபடத்தில் சேமிக்கப்பட்ட உள்ளீடுகளின் வரிசையை பராமரிக்காது. மறுபுறம், LinkedHashMap அவை செருகப்பட்ட உள்ளீடுகளின் வரிசையை பராமரிக்க ஒரு கலப்பின தரவு கட்டமைப்பைப் பயன்படுத்துகிறது. கீழேயுள்ள ஒப்பீட்டு விளக்கப்படத்தில், ஹாஷ்மேப்பிற்கும் லிங்க்ட்ஹேஷ்மேப்பிற்கும் இடையிலான வேறு சில வேறுபாடுகளை ஆராய்ந்தேன்.

  1. ஒப்பீட்டு விளக்கப்படம்
  2. வரையறை
  3. முக்கிய வேறுபாடுகள்
  4. முடிவுரை

ஒப்பீட்டு விளக்கப்படம்

ஒப்பீட்டுக்கான அடிப்படைhashmapLinkedHashMap
அடிப்படைஹாஷ்மேப்பில் செருகும் வரிசை பாதுகாக்கப்படவில்லை.செருகும் வரிசை LinkedHashMap இல் பாதுகாக்கப்படுகிறது.
தரவு அமைப்புவரைபடங்களை சேமிக்க ஹாஷ்மேப் ஹேஸ்டேபிளைப் பயன்படுத்துகிறது.வரைபடத்தை சேமிக்க இணைக்கப்பட்ட பட்டியலுடன் இணைக்கப்பட்ட ஹேஷ்மேப் ஹேஸ்டேபிளைப் பயன்படுத்துகிறது.
/ கருவிகள் அதிகப்படுத்தவும்ஹாஷ்மேப் சுருக்கம் வரைபடத்தை விரிவுபடுத்துகிறது மற்றும் வரைபட இடைமுகத்தை செயல்படுத்துகிறது.LinkedHashMap ஹாஷ்மாப்பை நீட்டிக்கிறது.
பதிப்புஹேஷ்மேப் ஜே.டி.கே 2.0 இல் அறிமுகப்படுத்தப்பட்டது.லிங்க்ட் ஹாஷ்மேப் ஜே.டி.கே 4.0 இல் அறிமுகப்படுத்தப்பட்டது.
மேல்நிலைஒப்பீட்டளவில் குறைந்த மேல்நிலை.ஒப்பீட்டளவில் அதிக மேல்நிலை ஏனெனில் அது வரைபட உள்ளீடுகளின் வரிசையை பராமரிக்க வேண்டும்.


ஹாஷ்மேப்பின் வரையறை

ஹாஷ்மேப் என்பது ஒரு வரைபடத்தை உருவாக்க பயன்படும் ஒரு வகுப்பு. இது செயல்படுத்துகிறது வரைபடம் இடைமுகம். இது நீட்டிக்கிறது AbstractMap வர்க்கம் அதனால் வரைபடத்தில் உள்ளீடுகளை சேமிக்க ஹாஷ் அட்டவணையைப் பயன்படுத்தலாம். வரைபடத்தின் உள்ளீடுகள் a ஒவ்வொரு விசையும் மதிப்புடன் தொடர்புடைய ஜோடி. உள்ளீட்டில் உள்ள விசையானது மதிப்பை மீட்டெடுக்கப் பயன்படுகிறது, விசை தனித்துவமாக இருக்க வேண்டும். அதனால்தான் ஹாஷ்மேப்பில் நகல் விசைகள் அனுமதிக்கப்படவில்லை. ஆனால் வரைபடத்தின் ஒவ்வொரு உள்ளீட்டிலும் உள்ள விசை வெவ்வேறு வகைகளைக் கொண்டிருக்கலாம், அதாவது ஹாஷ்மேப் உருவாக்கிய வரைபடத்தில் உள்ள விசைகள் பன்முகத்தன்மை கொண்டதாக இருக்கலாம். வரைபடத்தை சேமிக்க ஹாஷ்மேப் பயன்படுத்தும் தரவு அமைப்பு ஒரு ஹாஷ் அட்டவணை.

ஹாஷ்மேப்பில் உள்ளீடுகளின் செருகும் வரிசை பாதுகாக்கப்படவில்லை. ஹாஷ்மேப்பைப் பயன்படுத்தி உருவாக்கப்பட்ட வரைபடத்தில் உள்ளீடுகளைச் செருகுவது உள்ளீடுகளில் உள்ள விசைகளால் கணக்கிடப்பட்ட ஹாஷ் குறியீட்டை அடிப்படையாகக் கொண்டது. தவறுதலாக நீங்கள் ஹாஷ்மேப்பில் ஒரு நகல் விசையை உள்ளிட்டால், அது அந்த விசையின் முந்தைய மதிப்பை முன்மொழியப்பட்ட புதிய மதிப்புடன் மாற்றும் மற்றும் பழைய மதிப்பை வழங்கும். நகல் விசை எதுவும் பயன்படுத்தப்படாவிட்டால் மற்றும் மாற்றீடு எதுவும் நடக்கவில்லை என்றால், விசை எப்போதும் பூஜ்யத்தைத் தருகிறது. பின்வரும் எடுத்துக்காட்டுடன் ஹாஷ் வரைபடத்தில் உள்ளீடுகளை எவ்வாறு சேர்ப்பது என்று பார்ப்போம்.


ஹாஷ்மாப் hm = புதிய ஹாஷ்மாப் (); hm.put ("அஜய்", 275); hm.put ("விஜய்", 250); hm.put ("ஜானி", 150); hm.put ("ஜோர்டான்", 200); System.out.ln (hm); / * வெளியீடு * / {விஜய் = 250, ஜானி = 150, அஜய் = 275, ஜோர்டான் = 200}

மேலே உள்ள குறியீட்டைப் போலவே, நான் ஹாஷ்மேப்பின் ஒரு பொருளை உருவாக்கி, உள்ளீடுகளை புட்ஸ் முறையைப் பயன்படுத்தி சேர்த்துள்ளதை நீங்கள் காணலாம், மேலும் நான் ஹாஷ்மேப் பொருளைத் திருத்தும்போது, ​​உள்ளீடுகள் அவை செருகப்பட்ட வரிசையில் இல்லை. எனவே, ஹாஷ்மேப்பில் உள்ளீடுகளின் வரிசை திரும்பும் என்று நீங்கள் பாசாங்கு செய்ய முடியாது. வரைபட இடைமுகம் மற்றும் சுருக்கம் வரைபடத்தின் அனைத்து முறைகளையும் ஹாஷ்மேப் பயன்படுத்துகிறது மற்றும் எந்த புதிய முறையையும் அறிமுகப்படுத்தவில்லை; இது அதன் சொந்த கட்டமைப்பாளர்களைக் கொண்டுள்ளது. ஹாஷ் வரைபடத்தின் இயல்புநிலை திறன் 16 மற்றும் இயல்புநிலை நிரப்பு விகிதம் 0.75.

LinkedHashMap இன் வரையறை

இணைக்கப்பட்ட ஹாஷ்மேப் ஒரு வரைபடத்தை உருவாக்க ஒரு வர்க்க பயன்பாடாகும். LinkedHashMap நீட்டிக்கிறது hashmap வகுப்பு மற்றும் பின்னர் ஜே.டி.கே பதிப்பு 4.0 இல் ஹாஷ்மேப்பில் அறிமுகப்படுத்தப்பட்டது. ஹாஷ்மேப் வகுப்பின் குழந்தை வகுப்பாக இருப்பது லிங்க்ட்ஹாஷ்மேப் என்பது கட்டமைப்பாளர்கள் மற்றும் முறைகள் உள்ளிட்ட ஹாஷ்மேப் வகுப்பைப் போன்றது. ஆனால், வரைபடத்தில் உள்ளீடுகளைச் செருகும் வரிசையை அது பராமரிக்கிறது என்ற பொருளில் சென்டர் ஹாஷ்மேப் வேறுபடுகிறது. வரைபடத்தை சேமிக்க LinkedHashMap ஆல் பயன்படுத்தப்படும் தரவு அமைப்பு இணைக்கப்பட்ட பட்டியல் மற்றும் ஹாஷ் அட்டவணை.

ஹாஷ்மேப்பால் பெறப்பட்ட முறைகளுக்கு மேலதிகமாக, சென்டர் ஹாஷ்மேப் ஒரு புதிய முறையை அறிமுகப்படுத்துகிறது removeEldestEntry (). வரைபடத்தில் உள்ள பழமையான உள்ளீட்டை அகற்ற இந்த முறை பயன்படுத்தப்படுகிறது. சென்டர் ஹாஷ்மேப்பின் இயல்புநிலை திறன் 16 ஆகும், மற்றும் இயல்புநிலை நிரப்பு விகிதம் 0.75 ஆகும், இது ஹாஷ்மேப் வகுப்பிற்கும் ஒத்ததாகும்.

  1. மிக முக்கியமான வேறுபாடு என்னவென்றால், ஹாஷ்மேப்பின் செருகும் வரிசை பாதுகாக்கப்படவில்லை அதேசமயம், சென்டர் ஹாஷ்மேப்பின் செருகும் வரிசை பாதுகாக்கப்படுகிறது.
  2. வரைபடத்தின் கூறுகளை சேமிக்க ஹாஷ்மேப் பயன்படுத்தும் தரவு அமைப்பு ஹாஷ்டேபில். மறுபுறம், சென்டர் ஹாஷ்மேப் பயன்படுத்தும் தரவு அமைப்பு இணைக்கப்பட்ட பட்டியல் மற்றும் ஹாஷ்டேபில்.
  3. ஹாஷ்மேப் வகுப்பு நீண்டுள்ளது AbstractMap வர்க்கம் மற்றும் செயல்படுத்துகிறது வரைபடம் இடைமுகம். இருப்பினும், சென்டர் ஹாஷ்மேப் வகுப்பு என்பது ஒரு குழந்தை வகுப்பாகும் hashmap வகுப்பு அதாவது இணைக்கப்பட்ட ஹாஷ்மேப் வகுப்பு ஹாஷ்மேப் வகுப்பை நீட்டிக்கிறது.
  4. ஹாஷ்மேப் வகுப்பு அறிமுகப்படுத்தப்பட்டது ஜே.டி.கே 2.0 பதிப்பு. LinkedHashMap வகுப்பு பின்னர் அறிமுகப்படுத்தப்பட்டது ஜே.டி.கே 4.0 பதிப்பு.
  5. ஒப்பீட்டளவில் இணைக்கப்பட்ட ஹாஷ்மேப் வகுப்பில் ஹாஷ்மேப்பை விட மேல்நிலை உள்ளது, ஏனெனில் இது வரைபடத்தில் செருகப்பட்ட உறுப்புகளின் வரிசையை பராமரிக்க வேண்டும்.

முடிவுரை:

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