আমার এই ইস্যুটির কিছুটা আলাদা বৈকল্পিক ছিল: এটি একই কী এর সাথে দুটি পৃথক মানকে সংযুক্ত করা প্রয়োজন। অন্যদের সহায়তা করার ক্ষেত্রে এটি এখানে পোস্ট করা, আমি একটি হ্যাশম্যাপকে মান হিসাবে পরিচয় করিয়ে দিয়েছি:
/* @param frameTypeHash: Key -> Integer (frameID), Value -> HashMap (innerMap)
@param innerMap: Key -> String (extIP), Value -> String
If the key exists, retrieve the stored HashMap innerMap
and put the constructed key, value pair
*/
if (frameTypeHash.containsKey(frameID)){
//Key exists, add the key/value to innerHashMap
HashMap innerMap = (HashMap)frameTypeHash.get(frameID);
innerMap.put(extIP, connName+":"+frameType+":"+interfaceName);
} else {
HashMap<String, String> innerMap = new HashMap<String, String>();
innerMap.put(extIP, connName+":"+frameType+":"+interfaceName);
// This means the key doesn't exists, adding it for the first time
frameTypeHash.put(frameID, innerMap );
}
}
উপরের কোডটিতে প্রতিটি ফ্রেমের ইনপুট ফাইলের প্রথম স্ট্রিং থেকে কী ফ্রেমআইডিটি পড়ে নেওয়া হয়, ফ্রেম টাইপহ্যাশটির মান বাকী রেখাটি বিভক্ত করে নির্মিত হয় এবং স্ট্রিং অবজেক্ট হিসাবে মূলত সংরক্ষণ করা হয়েছিল, সময়ের সাথে সাথে ফাইলটির একাধিক লাইন থাকা শুরু হয়েছিল ( একই ফ্রেমআইডি কী-এর সাথে সম্পর্কিত) বিভিন্ন মান সহ) সুতরাং ফ্রেমটাইপহ্যাশকে মান হিসাবে শেষ লাইনের সাথে ওভাররাইট করা হয়েছিল। আমি স্ট্রিং অবজেক্টটিকে অন্য হাশম্যাপ অবজেক্টের সাথে মান ক্ষেত্র হিসাবে প্রতিস্থাপন করেছি, এটি বিভিন্ন মান ম্যাপিংয়ের একক কী বজায় রাখতে সহায়তা করেছে।