HashSet
সদৃশ মানকে অনুমতি দেয় না এমনটি ছাড়াও HashMap
এবং এর মধ্যে পার্থক্য কী HashSet
?
মানে বাস্তবায়ন বুদ্ধিমান? এটি কিছুটা অস্পষ্ট কারণ উভয়ই মান সংরক্ষণের জন্য হ্যাশ টেবিল ব্যবহার করে ।
HashSet
সদৃশ মানকে অনুমতি দেয় না এমনটি ছাড়াও HashMap
এবং এর মধ্যে পার্থক্য কী HashSet
?
মানে বাস্তবায়ন বুদ্ধিমান? এটি কিছুটা অস্পষ্ট কারণ উভয়ই মান সংরক্ষণের জন্য হ্যাশ টেবিল ব্যবহার করে ।
উত্তর:
তারা সম্পূর্ণরূপে বিভিন্ন নির্মাণ। ক HashMap
এর একটি বাস্তবায়ন Map
। একটি মানচিত্র মানগুলির কীগুলি মানচিত্র করে । মূল চেহারাটি হ্যাশ ব্যবহার করে ঘটে।
অন্যদিকে, ক HashSet
এর একটি বাস্তবায়ন Set
। একটি সেট একটি সেট এর গাণিতিক মডেলের সাথে মেলে ডিজাইন করা হয়েছে। একটি HashSet
একটি ব্যবহার করে HashMap
, তার বাস্তবায়ন ব্যাক হিসাবে আপনি লক্ষনীয়। তবে এটি সম্পূর্ণ ভিন্ন ইন্টারফেস প্রয়োগ করে।
যখন আপনি নিজের উদ্দেশ্যে কী সেরা হবে তা সন্ধান করছেন Collection
, এই টিউটোরিয়ালটি একটি ভাল শুরু করার জায়গা। আপনি যদি সত্যিই জানতে চান যে এটি কী চলছে, এর জন্য একটি বইও রয়েছে ।
হ্যাশসেট একটি সেট , যেমন {1,2,3,4,5}
হ্যাশম্যাপ হ'ল একটি কী -> মান ( মানটির মূল) মানচিত্র, যেমন {এ -> 1, বি -> 2, সি -> 2, ডি -> 1}
উপরে আমার উদাহরণে লক্ষ্য করুন যে হ্যাশম্যাপে অবশ্যই নকল কী থাকা উচিত নয়, তবে এর সদৃশ মান থাকতে পারে।
হ্যাশসেটে অবশ্যই কোনও সদৃশ উপাদান থাকতে হবে না।
হ্যাশসেট সিঙ্ক্রোনাইজ করা হয়নি যার অর্থ তারা সুস্পষ্টভাবে সিঙ্ক্রোনাইজ না করা পর্যন্ত থ্রেড-নিরাপদ ক্রিয়াকলাপের জন্য উপযুক্ত নয় [[সাদৃশ্য]
add contains next notes
HashSet O(1) O(1) O(h/n) h is the table
হ্যাশম্যাপ সিঙ্ক্রোনাইজ করা হয়নি যার অর্থ তারা সুস্পষ্টভাবে সিঙ্ক্রোনাইজ না করা পর্যন্ত থ্রেড-নিরাপদ ক্রিয়াকলাপের জন্য উপযুক্ত নয় [[সাদৃশ্য]
get containsKey next Notes
HashMap O(1) O(1) O(h/n) h is the table
আরও তথ্য সন্ধান করতে এই নিবন্ধটি দেখুন।
তাদের দুটি নামই হ্যাশ দিয়ে শুরু হওয়া সত্যিই লজ্জার বিষয় । এটি তাদের মধ্যে সর্বনিম্ন গুরুত্বপূর্ণ অংশ। গুরুত্বপূর্ণ অংশগুলি হ্যাশের পরে আসে - সেট এবং মানচিত্র , যেমন অন্যরা উল্লেখ করেছে। তারা কি কি যথাক্রমে, একটি হয় সেট একটি unordered সংগ্রহ - - এবং একটি মানচিত্র - কীড অ্যাক্সেস সহ একটি সংগ্রহ। এগুলি হ্যাশ দিয়ে প্রয়োগ করা হবে - নামগুলি এখান থেকেই আসে - তবে তাদের নামের অংশটির পিছনে তাদের সারাংশ লুকানো থাকে।
তাদের নাম নিয়ে বিভ্রান্ত হবেন না; তারা গভীরভাবে বিভিন্ন জিনিস।
Hashset
অভ্যন্তরীণভাবে কার্যকরী HashMap
। যদি আপনি অভ্যন্তরীণ বাস্তবায়ন দেখতে পান হ্যাশসেটে অন্তর্ভুক্ত করা মানগুলি হ্যাশম্যাপে কী হিসাবে সংরক্ষণ করা হয় এবং মানটি অবজেক্ট শ্রেণির একটি ডমি অবজেক্ট।
হ্যাশম্যাপ বনাম হ্যাশসেটের মধ্যে পার্থক্য হ'ল: -
HashMap
মূল মান জোড়া রয়েছে এবং প্রতিটি মান কী দ্বারা অ্যাক্সেস করা যেতে পারে যেখানে হ্যাশসেটের প্রতিবার পুনরাবৃত্তি করা দরকার কারণ সেখানে কোন পদ্ধতি পাওয়া যায় না।HashMap
মানচিত্র ইন্টারফেস প্রয়োগ করে এবং মান হিসাবে এক নাল মান এবং একাধিক নাল মানকে মান হিসাবে অনুমতি দেয় as যেখানে হিসাবে as HashSet
দেয় প্রয়োগ ইন্টারফেস সেট করুন, কেবলমাত্র একটি নাল মান এবং কোনও নকল মানকে অনুমতি দেয় ((রিমবারের একটি নাল কী হ্যাশম্যাপ কীতে অনুমোদিত হয় তাই হ্যাশসেটে একটি নাল মান রয়েছে হ্যাশসেট অভ্যন্তরীণভাবে হ্যাশম্যাপ প্রয়োগ করে)। HashSet
এবং HashMap
পুনরাবৃত্তির সময় সন্নিবেশের ক্রম বজায় রাখে না।নামগুলি বোঝায়, একটি হ্যাশম্যাপ হ'ল একটি সহযোগী মানচিত্র (একটি মূল থেকে কী থেকে ম্যাপিং), একটি হ্যাশসেটটি কেবল একটি সেট ।
জাভায় হ্যাশসেট এবং হ্যাশম্যাপের মধ্যে পার্থক্য
1) হ্যাশম্যাপ এবং হ্যাশসেটের মধ্যে প্রথম এবং সর্বাধিক উল্লেখযোগ্য পার্থক্য হ্যাশম্যাপ মানচিত্র ইন্টারফেসের একটি বাস্তবায়ন, যখন হ্যাশসেট সেট ইন্টারফেসের একটি বাস্তবায়ন, যার অর্থ হ্যাশম্যাপ একটি মূল মান ভিত্তিক ডেটা-কাঠামো এবং হ্যাশসেট নকলকে অনুমতি না দিয়ে স্বতন্ত্রতার গ্যারান্টি দেয় n ইন বাস্তবতা হ্যাশসেট জাভায় হ্যাশম্যাপের চারপাশে একটি মোড়ক, আপনি যদি হ্যাশসেট.জভা এর অ্যাড (ই ই) পদ্ধতির কোডটি দেখেন তবে নীচের কোডটি দেখতে পাবেন:
public boolean add(E e)
{
return map.put(e, PRESENT)==null;
}
যেখানে মান এবং কী হিসাবে মান হিসাবে এটি স্থাপন করা একটি চূড়ান্ত অবজেক্ট যা ডামি।
2) হ্যাশম্যাপ এবং হ্যাশসেটের মধ্যে দ্বিতীয় পার্থক্য হ'ল, আমরা উপাদানগুলিকে সেটে রাখার জন্য অ্যাড () পদ্ধতিটি ব্যবহার করি তবে জাভাতে হ্যাশম্যাপে কী এবং মান সন্নিবেশ করতে আমরা পুট () পদ্ধতিটি ব্যবহার করি।
3) হ্যাশসেটটি কেবল একটি নাল কীকে মঞ্জুরি দেয় তবে হ্যাশম্যাপ একটি নাল কী + একাধিক নাল মানকে অনুমতি দিতে পারে।
জাভায় হ্যাশসেট এবং হ্যাশম্যাপের মধ্যে পার্থক্য রয়েছে। সংক্ষেপে হ্যাশসেট এবং হ্যাশম্যাপ দুটি পৃথক ধরণের সংগ্রহ যা একটি সেট হচ্ছে এবং অন্যটি মানচিত্র।
জাভায় হ্যাশসেট এবং হ্যাশম্যাপের মধ্যে পার্থক্য
হ্যাশসেট অভ্যন্তরীণভাবে হ্যাশম্যাপ ব্যবহার করে অবজেক্টস সংরক্ষণ করে w যখন যুক্ত (স্ট্রিং) পদ্ধতিটি এটি হ্যাশস্যাপকে (কী, মান) পদ্ধতি বলে যেখানে কী = স্ট্রিং অবজেক্ট এবং মান = নতুন অবজেক্ট (ডামি) so এটি কোনও সদৃশ বজায় রাখে কারণ কীগুলি মান ব্যতীত কিছুই নয় maintain অবজেক্ট।
হ্যাশসেট / হ্যাশম্যাপে কী হিসাবে সঞ্চিত অবজেক্টগুলিতে হ্যাশকোড ও সমান চুক্তিকে ওভাররাইড করা উচিত।
যে কীগুলি হ্যাশম্যাপে অ্যাক্সেস / স্টোর মান অবজেক্টে ব্যবহৃত হয় সেগুলি ফাইনাল হিসাবে ঘোষণা করা উচিত কারণ যখন এটি সংশোধন করা হয় তখন মান অবজেক্টটি অবস্থিত হতে পারে না এবং শূন্য হয়।
এ HashMap
হ'ল কোনও জিনিস, যেকোন প্রকারের কাস্টম কী দ্বারা সূচিযুক্ত বস্তু যুক্ত করা, পেতে, সরিয়ে দেওয়া, ...
এ HashSet
হ'ল উপাদান যুক্ত করা, উপাদানগুলি সরানো এবং হ্যাশগুলির সাথে তুলনা করে উপাদান উপস্থিত রয়েছে কিনা তা পরীক্ষা করা।
সুতরাং একটি হ্যাশম্যাপে উপাদান রয়েছে এবং একটি হ্যাশসেট তাদের হ্যাশগুলি মনে রাখে।
equals()
পদ্ধতিগুলি কল করে ।
পার্থক্য: বংশানুক্রমিক সম্মানের সাথে: হ্যাশসেট সেট সেট করে। হ্যাশম্যাপ মানচিত্র প্রয়োগ করে এবং কী এবং মানগুলির মানচিত্র তৈরি করে।
ডাটাবেসের ক্ষেত্রে হ্যাশসেট এবং হ্যাশম্যাপের ব্যবহার আপনাকে প্রত্যেকটির তাত্পর্য বুঝতে সহায়তা করবে।
হ্যাশসেট: সাধারণত অনন্য সংগ্রহের সামগ্রী সংরক্ষণের জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ: এটি
ক্লাস আইটেম এবং ক্লাস বিডের (যেখানে আইটেমের অনেক বিড রয়েছে)
হ্যাশম্যাপের মধ্যে একাধিক থেকে এক সম্পর্কিত জাহাজ সংরক্ষণের জন্য বাস্তবায়ন শ্রেণি হিসাবে ব্যবহৃত হতে পারে : value.the মান একটি কী ম্যাপ নাল বা কোনো বস্তু হতে পারে ব্যবহার করা হয় / অবজেক্টের তালিকা (যা নিজেই বস্তু)।
একটি হ্যাশসেট একটি হ্যাশম্যাপের ক্ষেত্রে প্রয়োগ করা হয় । এটি কী এবং একটি বর্তমান অবজেক্টের মধ্যে ম্যাপিং।
একটি হ্যাশসেট তার এন্ট্রিগুলি সঞ্চয় করতে অভ্যন্তরীণভাবে একটি হ্যাশম্যাপ ব্যবহার করে। অভ্যন্তরীণ হ্যাশম্যাপে প্রতিটি এন্ট্রি একক অবজেক্ট দ্বারা চিহ্নিত থাকে, সুতরাং সমস্ত এন্ট্রি একই বালতিতে হ্যাশ করে। অভ্যন্তরীণ হ্যাশম্যাপ এর মানগুলি সংরক্ষণ করতে কী ব্যবহার করে তা আমি মনে করি না, তবে এটি সত্যিকার অর্থে গুরুত্বপূর্ণ নয় কারণ অভ্যন্তরীণ ধারকটিতে কখনই সদৃশ মান থাকবে না।
সম্পাদনা : ম্যাথিউর মন্তব্যটি সম্বোধন করার জন্য, তিনি ঠিক বলেছেন; আমি এটা পিছনে ছিল। অভ্যন্তরীণ HashMap অস্থির হয় অবজেক্টস সেট উপাদান আপ করতে সঙ্গে । হ্যাশম্যাপের মানগুলি এমন একটি অবজেক্ট যা কেবল হ্যাশম্যাপ বালতিতে সঞ্চিত থাকে।
HashMap
হ'ল একটি Map
বাস্তবায়ন, ডুপ্লিকেট মানগুলির অনুমতি দেয় তবে কীগুলি সদৃশ নয়। । কোনও অবজেক্ট যুক্ত করার জন্য একটি কী / মান জুড়ি প্রয়োজন। নাল কী এবং নাল মান অনুমোদিত। উদাহরণ:
{The-> 3, world-> 5, যা-> 2, nice-> 4}
HashSet
একটি হল Set
বাস্তবায়ন, যা নেই সদৃশ অনুমতি দেয় না .যদি আপনি একটি ডুপ্লিকেট বস্তু, একটি কল যোগ করার চেষ্টা করেছেন public boolean add(Object o)
পদ্ধতি, তারপর সেট অপরিবর্তিত এবং আয় অবশেষ false
। উদাহরণ:
[, বিশ্ব, হয়, চমৎকার]
আপনি আপনার নিজের প্রশ্নের উত্তর বেশিরভাগই দিয়েছেন - হ্যাশসেটটি সদৃশ মানগুলিকে অনুমতি দেয় না। ব্যাকিং হ্যাশম্যাপ ব্যবহার করে একটি হ্যাশसेट তৈরি করা তুচ্ছ হবে (এবং মানটি ইতিমধ্যে বিদ্যমান কিনা তা পরীক্ষা করার জন্য)। আমি অনুমান করি যে বিভিন্ন জাভা বাস্তবায়ন হয় তা করে, বা আরও কার্যকরভাবে কিছু কাস্টম কোড প্রয়োগ করে।
java.util.HashSet
বলেছেন যে এ java.util.HashMap
।
মূলত হ্যাশম্যাপে ব্যবহারকারীকে কী এবং মান উভয়ই সরবরাহ করতে হয়, যখন হ্যাশসেটে আপনি কেবল মান সরবরাহ করেন, হ্যাশ ফাংশনটি ব্যবহার করে কীটি মান থেকে স্বয়ংক্রিয়ভাবে উদ্ভূত হয়। সুতরাং কী এবং মান উভয় থাকার পরে, হ্যাশসেটটি অভ্যন্তরীণভাবে হ্যাশম্যাপ হিসাবে সংরক্ষণ করা যাবে।
হ্যাশসেট এবং হ্যাশম্যাপ উভয় স্টোর জোড়া, পার্থক্যটি এই যে হ্যাশম্যাপে আপনি একটি কী নির্দিষ্ট করতে পারবেন যখন হ্যাশসেটে কীটি অবজেক্টের হ্যাশ কোড থেকে আসে
HashMaps
একটি নাল কী এবং নাল মানকে অনুমতি দিন। এগুলি সিঙ্ক্রোনাইজ করা হয় না, যা কার্যকারিতা বাড়ায়। এটির প্রয়োজন হলে আপনি সেগুলি ব্যবহার করে সিঙ্ক্রোনাইজ করতে পারেনCollections.SynchronizedMap()
Hashtables
নাল কীগুলি অনুমতি দেয় না এবং সিঙ্ক্রোনাইজ করা হয়।
হ্যাশম্যাপ মানচিত্র ইন্টারফেসের একটি বাস্তবায়ন হ্যাশসেট সেট ইন্টারফেসের একটি বাস্তবায়ন
মূল মান জুটি হ্যাশসেট স্টোর কেবলমাত্র বস্তুর আকারে হ্যাশম্যাপ স্টোরগুলি
মানচিত্রটিতে উপাদান যুক্ত করতে পুট পদ্ধতি ব্যবহার করা হয় উপাদান যুক্ত করার জন্য পদ্ধতি যুক্ত করা হয় সেট হয়
হ্যাশ ম্যাপে হ্যাশকোড মানটি কী অবজেক্টটি ব্যবহার করে গণনা করা হয় এখানে সদস্য অবজেক্টটি হ্যাশকোড মান গণনা করার জন্য ব্যবহৃত হয় যা দুটি বস্তুর জন্য সমান হতে পারে তাই সমতা () পদ্ধতিটি যদি সমানতা পরীক্ষা করতে ব্যবহৃত হয় তবে এটি দুটি মিথ্যা মানে যার অর্থ দুটি বস্তু আলাদা।
হ্যাশম্যাপটি হ্যাশসেটের চেয়ে দ্রুততর কারণ হ্যাশপেটের চেয়ে অ্যাক্সেস অ্যাক্সেস করতে অনন্য কী ব্যবহৃত হয় Hash