আমি অবাক হয়ে গেলাম যে Map<?,?>
এটি নয় Collection<?>
।
আমি ভেবেছিলাম এটিকে যদি এ জাতীয় হিসাবে ঘোষণা করা হয় তবে এটি প্রচুর পরিমাণে জ্ঞান অর্জন করবে:
public interface Map<K,V> extends Collection<Map.Entry<K,V>>
সর্বোপরি, একটি Map<K,V>
একটি সংগ্রহ Map.Entry<K,V>
, তাই না?
সুতরাং এটিরূপে বাস্তবায়ন না হওয়ার কোনও কারণ আছে কি?
একটি সবচেয়ে প্রামাণিক উত্তরের জন্য Cletus জন্য ধন্যবাদ, কিন্তু আমি এখনও ভাবছি করছি কেন, যদি আপনি ইতিমধ্যে একটি দেখতে পারেন Map<K,V>
হিসাবে Set<Map.Entries<K,V>>
(মাধ্যমে entrySet()
), এটা ঠিক যে ইন্টারফেস প্রযোজ্য না পরিবর্তে।
যদি একটি
Map
হয়Collection
তবে উপাদানগুলি কী কী? একমাত্র যুক্তিসঙ্গত উত্তর হ'ল "কী-মান জোড়া"
হুবহু, interface Map<K,V> extends Set<Map.Entry<K,V>>
দুর্দান্ত হবে!
তবে এটি
Map
বিমূর্ততা একটি খুব সীমাবদ্ধ (এবং বিশেষভাবে দরকারী নয়) সরবরাহ করে ।
তবে যদি তা হয় তবে কেন entrySet
ইন্টারফেস দ্বারা নির্দিষ্ট করা হয়? এটি অবশ্যই কোনওভাবে কার্যকর হতে হবে (এবং আমি মনে করি যে এই অবস্থানের পক্ষে তর্ক করা সহজ!)।
প্রদত্ত কী মানচিত্রে কোন মানটিকে আপনি মূল্য দিতে পারেন তা আপনি জিজ্ঞাসা করতে পারবেন না বা কোনও মান কী তা মানচিত্র তা জেনেও আপনি প্রদত্ত কীটির জন্য এন্ট্রি মুছতে পারবেন না।
আমি বলছি না যে এতটুকুই আছে Map
! এটি অন্যান্য সমস্ত পদ্ধতি রাখতে পারে এবং রাখা উচিত (বাদে entrySet
, যা এখন অপ্রয়োজনীয়)!