জাভায় হ্যাশম্যাপ এবং লিংকডহ্যাশম্যাপের মধ্যে পার্থক্য

লেখক: Laura McKinney
সৃষ্টির তারিখ: 2 এপ্রিল 2021
আপডেটের তারিখ: 10 মে 2024
Anonim
Difference between HashMap, LinkedHashMap and TreeMap | Java Tutorial for beginners | Core Java
ভিডিও: Difference between HashMap, LinkedHashMap and TreeMap | Java Tutorial for beginners | Core Java

কন্টেন্ট


হ্যাশম্যাপ এবং লিংকডহ্যাশম্যাপটি ক্লাস, একে অপরের সাথে বেশ সমান এবং মানচিত্র তৈরির জন্য ব্যবহৃত হয়। হ্যাশম্যাপ ক্লাসটি মানচিত্রে উপাদানগুলি সংরক্ষণ করতে একটি হ্যাশ টেবিল ব্যবহার করতে অ্যাবস্ট্রাকম্যাপ শ্রেণিকে প্রসারিত করে। লিঙ্কডহ্যাশম্যাপ ক্লাসটি তাদের সন্নিবেশ ক্রমের ভিত্তিতে মানচিত্রে এন্ট্রিগুলি বজায় রাখে। হ্যাশম্যাপ এবং লিংকডহ্যাশম্যাপকে একে অপরের থেকে আলাদা করার বৈশিষ্ট্যটি হ'ল হ্যাশ মানচিত্র মানচিত্রে সঞ্চিত এন্ট্রিগুলির ক্রম বজায় রাখে না। অন্য দিকে, LinkedHashMap সেগুলিতে প্রবেশের প্রবেশের ক্রম বজায় রাখতে একটি হাইব্রিড ডেটা কাঠামো ব্যবহার করে। নীচের তুলনা চার্টে আমি হ্যাশম্যাপ এবং লিংকডহ্যাশম্যাপের মধ্যে কিছু অন্যান্য পার্থক্য সন্ধান করেছি a

  1. তুলনা রেখাচিত্র
  2. সংজ্ঞা
  3. মূল পার্থক্য
  4. উপসংহার

তুলনা রেখাচিত্র

তুলনা করার জন্য বেসহ্যাশ মানচিত্রLinkedHashMap
মৌলিকহ্যাশম্যাপে সন্নিবেশ অর্ডার সংরক্ষণ করা হয়নি।সংযুক্তি অর্ডারটি লিঙ্কডহ্যাশম্যাপে সংরক্ষিত আছে।
তথ্য কাঠামোহ্যাশম্যাপ মানচিত্র সংরক্ষণ করতে হ্যাশ টেবিল ব্যবহার করে।লিঙ্কডহ্যাশম্যাপ মানচিত্র সংরক্ষণের জন্য লিঙ্কযুক্ত তালিকার পাশাপাশি হ্যাশটবেল ব্যবহার করে।
/ কার্যকরী বর্ধিত করেহ্যাশম্যাপ বিমূর্তম্যাপ প্রসারিত করে এবং মানচিত্র ইন্টারফেস প্রয়োগ করে।লিঙ্কডহ্যাশম্যাপ হাশম্যাপ প্রসারিত করে।
সংস্করণজেডিকে ২.০ এ হ্যাশম্যাপ চালু হয়েছিল।লিঙ্কডহ্যাশম্যাপটি জেডিকে ৪.০ এ চালু হয়েছিল।
মাথার উপরেতুলনামূলকভাবে কম ওভারহেড।তুলনামূলকভাবে বেশি ওভারহেড কারণ এটি মানচিত্রে প্রবেশের ক্রম বজায় রাখতে হয়।


হাশম্যাপ সংজ্ঞা

হ্যাশম্যাপ এমন একটি শ্রেণি যা মানচিত্র তৈরি করতে ব্যবহৃত হয়। এটি প্রয়োগ করে মানচিত্র ইন্টারফেস. এটি প্রসারিত AbstractMap শ্রেণি যাতে এটি মানচিত্রে প্রবেশের জন্য হ্যাশ টেবিল ব্যবহার করতে পারে। মানচিত্রের এন্ট্রিগুলি হ'ল ক জোড়া যেখানে প্রতিটি কী মানের সাথে যুক্ত। এন্ট্রি-র কীটি মানটি পুনরুদ্ধার করার জন্য ব্যবহৃত হয়, কীটি অবশ্যই অনন্য হতে হবে। এজন্য হ্যাশম্যাপে সদৃশ কীগুলি অনুমোদিত নয়। তবে মানচিত্রের প্রতিটি প্রবেশের কীটিতে বিভিন্ন ধরণের অর্থ থাকতে পারে হ্যাশম্যাপের তৈরি মানচিত্রে কীগুলি ভিন্নধর্মী হতে পারে। একটি মানচিত্র সংরক্ষণের জন্য হ্যাশম্যাপ দ্বারা ব্যবহৃত ডেটা স্ট্রাকচার হ্যাশ টেবিল।

হ্যাশম্যাপে প্রবেশের প্রবেশের ক্রম সংরক্ষণ করা হয়নি। হাশম্যাপ ব্যবহার করে তৈরি করা মানচিত্রে প্রবেশের সন্নিবেশ প্রবেশের কীগুলি দ্বারা গণনা করা হ্যাশ কোডের উপর ভিত্তি করে। যদি ভুল করে আপনি হ্যাশম্যাপে একটি সদৃশ কী প্রবেশ করান, এটি প্রস্তাবিত নতুন মানের সাথে সেই কীটির পূর্ববর্তী মানটি প্রতিস্থাপন করবে এবং পুরানো মানটি ফিরিয়ে দেবে। যদি কোনও সদৃশ কী ব্যবহার করা হয় না এবং কোনও প্রতিস্থাপন ঘটে থাকে তবে কীটি সর্বদা নুলকে ফেরত দেয়। নীচের উদাহরণ সহ হ্যাশ ম্যাপে কীভাবে এন্ট্রি যুক্ত করা যায় তা আসুন দেখুন।


হাশম্যাপ এইচএম = নতুন হাশম্যাপ (); এইচএম.পুট ("অজয়", 275); এইচএম.পুট ("বিজয়", 250); এইচএম.পুট ("জনি", 150); এইচএম.পুট ("জর্দান", 200); System.out.ln (এইচএম); / * আউটপুট * / {বিজয় = 250, জনি = 150, অজয় ​​= 275, জর্দান = 200

উপরের কোডটির মতো আপনি দেখতে পাচ্ছেন যে আমি হ্যাশম্যাপের একটি অবজেক্ট তৈরি করেছি এবং পুটস পদ্ধতি ব্যবহার করে এন্ট্রি যুক্ত করেছি এবং যখন আমি হ্যাশম্যাপ অবজেক্টটি এডিট করি তখন এন্ট্রিগুলি সন্নিবেশ করানো ক্রম অনুসারে এড হয় না। অতএব, আপনি হ্যাশম্যাপে প্রবেশের ক্রমগুলি প্রেরণ করতে পারবেন না। হ্যাশম্যাপ মানচিত্র ইন্টারফেস এবং অ্যাবস্ট্রাকম্যাপ শ্রেণীর সমস্ত পদ্ধতি ব্যবহার করে এবং কোনও নতুন পদ্ধতি প্রবর্তন করে না; এটির নিজস্ব নির্মাণকারী রয়েছে। হ্যাশ মানচিত্রের ডিফল্ট ক্ষমতা 16 এবং ডিফল্ট পূরণ অনুপাত হয় 0.75.

লিংকডহ্যাশম্যাপের সংজ্ঞা

লিঙ্কডহ্যাশম্যাপ মানচিত্র তৈরির জন্য বর্গ ব্যবহার। লিঙ্কডহ্যাশম্যাপ প্রসারিত করে হ্যাশ মানচিত্র ক্লাস এবং পরে জেডিকে সংস্করণ 4.0 এ হ্যাশম্যাপে প্রবর্তিত হয়েছিল। লিঙ্কডহ্যাশম্যাপের হাশম্যাপ ক্লাসের শিশু শ্রেণি হওয়াই নির্মাণকারী এবং পদ্ধতিগুলি সহ হ্যাশম্যাপ শ্রেণির মতো। তবে, লিঙ্কডহ্যাশম্যাপটি এমনভাবে পৃথক হয়েছে যে এটি মানচিত্রে প্রবেশের প্রবেশের ক্রম বজায় রেখেছে। মানচিত্রটি সংরক্ষণ করার জন্য লিংকডহ্যাশম্যাপ ব্যবহার করা ডেটা স্ট্রাকচার যোজিত তালিকা এবং হ্যাশ টেবিল.

হাশম্যাপ দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত পদ্ধতিগুলি ছাড়াও লিংকডহ্যাশম্যাপ একটি নতুন পদ্ধতি প্রবর্তন করে EldestEntry ()। এই পদ্ধতিটি মানচিত্রে প্রাচীনতম এন্ট্রি অপসারণ করতে ব্যবহৃত হয়। লিংকডহ্যাশম্যাপের ডিফল্ট ক্ষমতা 16 এবং ডিফল্ট পূরণ অনুপাত 0.75 যা হ্যাশম্যাপ শ্রেণীর সাথেও সমান।

  1. সর্বাধিক গুরুত্বপূর্ণ পার্থক্যটি হ্যাশম্যাপের সন্নিবেশ ক্রম সংরক্ষিত না যদিও, লিঙ্কডহ্যাশম্যাপের সন্নিবেশ ক্রমটি রক্ষিত.
  2. মানচিত্রের উপাদানগুলি সংরক্ষণ করতে হ্যাশম্যাপ দ্বারা ব্যবহৃত ডেটা স্ট্রাকচার হ্যাশ টেবিল। অন্যদিকে, লিংকডহ্যাশম্যাপ ব্যবহৃত ডেটা স্ট্রাকচার যোজিত তালিকা এবং হ্যাশ টেবিল.
  3. হ্যাশম্যাপ ক্লাস প্রসারিত AbstractMap বর্গ এবং বাস্তবায়ন মানচিত্র ইন্টারফেস. তবে লিংকডহ্যাশম্যাপ ক্লাসটি একটি শিশু শ্রেণি হ্যাশ মানচিত্র ক্লাস অর্থাত লিঙ্কডহ্যাশম্যাপ ক্লাস হ্যাশম্যাপ ক্লাস প্রসারিত করে।
  4. হ্যাশম্যাপ ক্লাস চালু হয়েছিল জেডিকে ২.০ সংস্করণ। লিঙ্কডহ্যাশম্যাপ ক্লাসটি পরে চালু হয়েছিল জেডিকে ৪.০ সংস্করণ।
  5. তুলনামূলকভাবে লিঙ্কডহ্যাশম্যাপ ক্লাসে হ্যাশম্যাপের চেয়ে বেশি ওভারহেড রয়েছে কারণ এটি মানচিত্রে প্রবেশ করা উপাদানগুলির ক্রম বজায় রাখতে হবে।

উপসংহার:

লিঙ্কডহ্যাশম্যাপটি কেবল তখনই ব্যবহার করা উচিত যেখানে আমরা মানচিত্রে প্রবেশ করা উপাদানগুলির ক্রম সম্পর্কে উদ্বিগ্ন।