জাভাতে হ্যাশম্যাপ এবং হ্যাশটেবলের মধ্যে পার্থক্য
কন্টেন্ট
হ্যাশম্যাপ এবং হ্যাশটেবল, উভয়ই একটি প্রতিনিধিত্ব করতে ব্যবহৃত হয় অবজেক্টের গ্রুপ যে প্রতিনিধিত্ব করা হয়
হ্যাশম্যাপ এবং হ্যাশটেবলের মধ্যে আরও কিছু পার্থক্য শিখতে নীচে দেখানো তুলনা চার্টে আসুন।
- তুলনা রেখাচিত্র
- সংজ্ঞা
- মূল পার্থক্য
- মিল
- উপসংহার
তুলনা রেখাচিত্র
তুলনা করার জন্য বেস | হ্যাশ মানচিত্র | হ্যাশ টেবিল |
---|---|---|
প্রয়োগ / প্রসারিত | হ্যাশম্যাপ বর্গ মানচিত্র ইন্টারফেস প্রয়োগ করে এবং একটি বিমূর্তম্যাপ শ্রেণি প্রসারিত করে। | হ্যাশটেবল অভিধান লিগ্যাসি ক্লাসের প্রসারিত করে তবে এটি পুনরায় ইঞ্জিনিয়ার করা হয়েছে এবং এখন এটি মানচিত্র ইন্টারফেস প্রয়োগ করে। |
সিংক্রোনাইজ | হ্যাশম্যাপটি সঙ্কলিত নয়, এবং তাই হ্যাশম্যাপ অবজেক্টটি নিরাপদে থ্রেড করা হয়নি। | হ্যাশটেবল সিঙ্ক্রোনাইজ করা হয় এবং তাই হ্যাশটেবলের অবজেক্টটি থ্রেড নিরাপদ। |
কী / মূল্য | একটি কী কেবল একবার নালকে ফেরত দিতে পারে তবে মানটি নুলকে যে কোনও সংখ্যক সময় দিতে পারে। | কোনও কী নালকে ফেরত দিতে পারে না কারণ এটি হ্যাশ কোডটি প্রাপ্ত করতে ব্যবহৃত হয় যা হ্যাশ টেবিলের সূচক হিসাবে ব্যবহৃত হবে, না কোনও মান নুলকে ফেরত দিতে পারে না। |
ডিফল্ট প্রাথমিক সামর্থ্য | হ্যাশম্যাপের ডিফল্ট প্রাথমিক ক্ষমতা 16 টি। | হ্যাশটেবলের ডিফল্ট প্রাথমিক ক্ষমতা 11 টি। |
ঢোঁড়ন | হ্যাশম্যাপটি আইট্রেটার দ্বারা অনুসরণ করা হয়। | ম্যাপ ক্লাসের মতো হ্যাশটেবলও ট্র্যাকিংয়ের জন্য সরাসরি আইট্রেটারকে সমর্থন করে না এবং তাই এটি গণক ব্যবহার করে। |
হাশম্যাপ সংজ্ঞা
হ্যাশম্যাপ একটি ক্লাস যা কার্যকর করে মানচিত্র ইন্টারফেস এবং প্রসারিত AbstractMap বর্গ হ্যাশ টেবিল ব্যবহার করে। হ্যাশম্যাপের অবজেক্টটি একটি সংগ্রহ / সেটকে বোঝায় / * কে কী উপস্থাপন করে, এবং ভি মান * / শ্রেণির হ্যাশম্যাপকে উপস্থাপন করে প্রথম কনস্ট্রাক্টর হ'ল ডিফল্ট কনস্ট্রাক্টর যা হ্যাশম্যাপের একটি খালি অবজেক্টটি 16 টির ডিফল্ট ক্ষমতা এবং 0.75 এর ডিফল্ট ভরাট অনুপাত সহ আরম্ভ করে initial দ্বিতীয় নির্মাণকারী মিটার মান সহ হ্যাশ মানচিত্রটি আরম্ভ করে। তৃতীয় নির্মাতা আর্গুমেন্ট "ক্ষমতা" প্রদানের মানের সাথে সামঞ্জস্যিক প্রাথমিক ক্ষমতা সহ একটি হ্যাশ মানচিত্র তৈরি করে। চতুর্থ নির্মাতা একটি ক্ষমতা এবং পরামিতিগুলিতে সরবরাহ করা অনুপাত সহ হ্যাশ মানচিত্রটি আরম্ভ করে। আসুন এখন শিখি কীভাবে একটি হ্যাশ মানচিত্রে এন্ট্রিগুলি ফিড করা যায়। হাশম্যাপ এইচএম = নতুন হাশম্যাপ (); এইচএম.পুট ("অজয়", 275); এইচএম.পুট ("বিজয়", 250); এইচএম.পুট ("জনি", 150); এইচএম.পুট ("জর্দান", 200); System.out.ln (এইচএম); / * আউটপুট * / {বিজয় = 250, জনি = 150, অজয় = 275, জর্দান = 200 উপরের কোডে, আপনি দেখতে পাচ্ছেন যে আমি একটি খালি হ্যাশম্যাপ অবজেক্ট তৈরি করেছি HM ডিফল্ট প্রাথমিক ক্ষমতা এবং ডিফল্ট পূরণ অনুপাত সহ। তারপরে আমি হ্যাশ মানচিত্রে পুট (কে, ভি) পদ্ধতিটি ব্যবহার করে চারটি এন্ট্রি প্রবেশ করালাম যা মানটির কীটি ম্যাপ করে। আপনি পর্যবেক্ষণ করতে পারেন যে এন্ট্রিগুলি আপনি যে ক্রমগুলি খাওয়ান সেগুলি ক্রম অনুসারে এড হয় না কারণ সন্নিবেশ ক্রম ঠিক করা হয়নি। এখন, একটি ক্ষেত্রে বিবেচনা করুন যে আপনার ইতিমধ্যে একটি এন্ট্রি রয়েছে হ্যাশটেবল একটি শ্রেণি যা প্রসারিত করে অভিধান বর্গ যা একটি উত্তরাধিকারী বর্গ এবং বাস্তবায়নের জন্য পুনরায় কল্পনা করা হয় মানচিত্র ইন্টারফেস. হ্যাশটেবল তার ডেটা কাঠামো হিসাবে হ্যাশ টেবিলটি ব্যবহার করে। হ্যাশটেবল হ্যাশম্যাপের সাথে সমান যেমন এখানেও হ্যাশটেবলের অবজেক্টটি এন্ট্রি সংগ্রহকে বোঝায় যেখানে প্রতিটি প্রবেশের জুড়ি থাকে / * কে কীটি নির্দিষ্ট করে এবং ভি কী / / শ্রেণির হ্যাশটেবলের সাথে সম্পর্কিত মান নির্দিষ্ট করে উপরের কোডে প্রথম কনস্ট্রাক্টর হ'ল ডিফল্ট কনস্ট্রাক্টর যা একটি ক্লাস হ্যাশটেবলের একটি খালি অবজেক্ট তৈরি করে, এর ডিফল্ট আকার 11 এবং ডিফল্ট ভরাট অনুপাত 0.75 হয়। দ্বিতীয় নির্মাণকারী প্যারামিটার "আকার" এর সাথে উপলব্ধ মানের সাথে মাপের সাথে একটি হ্যাশ টেবিল তৈরি করে। তৃতীয় নির্মাতা একটি আকার এবং পরামিতিগুলিতে সরবরাহ করা একটি অনুপাত সহ একটি হ্যাশ টেবিল তৈরি করে। চতুর্থ নির্মাতা হ্যাশ টেবিলটি এম। মান দিয়ে শুরু করে। আসুন কীভাবে সন্নিবেশ করা যায় তা শিখি হ্যাশটেবল এইচটিএল = নতুন হ্যাশটেবল (); এইচটি.পুট (নতুন হ্যাশকোড (2), 275); এইচটি.পুট (নতুন হ্যাশকোড (12), 250); এইচটি.পুট (নতুন হ্যাশকোড (16), 150); এইচটি.পুট (নতুন হ্যাশকোড (8), 200); System.out.ln (এইচটি); / * আউটপুট * / {12 = 250, 16 = 150,2y = 275, 8 = 200 উপরের কোডে, আমি হ্যাশটেবলের একটি খালি অবজেক্ট তৈরি করেছি এবং পুট () পদ্ধতিটি ব্যবহার করে চারটি এন্ট্রি প্রবেশ করিয়েছি। অভ্যন্তরীণ পদ্ধতিতে আমি কল করলাম হ্যাশকোড () যা গণনা করে এবং হ্যাশ কোড মানটি ফেরত দেয় যা এন্ট্রি অবজেক্টের সূচক মান হিসাবে কাজ করবে। আপনি দেখতে পাচ্ছেন যে আমি হ্যাশ টেবিলের আকারটি উল্লেখ করিনি তাই এটি ডিফল্টরূপে ১১ হবে Here এখানেও, সন্নিবেশ ক্রম সংরক্ষণ করা হয় না এবং তাই, যখন এড এন্ট্রিগুলি ক্রমানুসারে উপস্থিত হয় নি তখন এটি খাওয়ানো হয়েছিল। হ্যাশম্যাপ পারফরম্যান্সে আরও ভাল কারণ এটির বস্তুগুলি অচ্ছলঙ্কিত এবং একাধিক থ্রেড একই সাথে এটি পরিচালনা করতে পারে এবং তাই এটি হ্যাশটেবলের চেয়ে দ্রুত।
হ্যাশটেবল সংজ্ঞা
মিল:
উপসংহার: