मैंने पहले यह किया है। यह एक आदेश दिया गया बहु-मानचित्र है और यह केवल सूची वस्तुओं का एक वृक्ष है। इस तरह ..
Map<KeyType, List<ValueType>> mmap = new TreeMap<KeyType, List<ValueType>>();
आप एक नया LinkedList हर बार एक नई कुंजी शुरू की है का निर्माण करने की जरूरत है, तो यह एक कस्टम कंटेनर वर्ग में लपेट के लिए उपयोगी हो सकता है। मैं कुछ खोजने की कोशिश करूंगा।
तो, मैं इस कस्टम एक साथ कंटेनर जल्दी से (पूरी तरह से अपरीक्षित) फेंक दिया, लेकिन यह हो सकता है आप के लिए क्या देख रहे हैं। ध्यान रखें कि आपको केवल इस प्रकार के कंटेनर का उपयोग करना चाहिए यदि आप वास्तव में मूल्य सूचियों के ऑर्डर किए गए मानचित्र की तलाश में हैं। यदि आपके मूल्यों के लिए कुछ प्राकृतिक आदेश है, तो आपको ट्रीसेट का उपयोग करना चाहिए जैसा कि अन्य ने सुझाव दिया है।
public class TestAnything {
public static void main(String[] args) {
MTreeMap<Integer, String> mmap = new MTreeMap<Integer, String>();
mmap.put(1, "Value1");
mmap.put(2, "Value2");
mmap.put(3, "Value3");
mmap.put(1, "Value4");
mmap.put(3, "Value5");
mmap.put(2, "Value6");
mmap.put(2, "Value7");
System.out.println("size (1) = " + mmap.get(1).size());
System.out.println("size (2) = " + mmap.get(2).size());
System.out.println("size (3) = " + mmap.get(3).size());
System.out.println("Total size = " + mmap.size());
System.out.println(mmap);
}
}
उत्पादन यह है::
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class MTreeMap<K, V> {
private final Map<K, List<V>> mmap = new TreeMap<K, List<V>>();
private int size = 0;
public MTreeMap() {
}
public void clear() {
mmap.clear();
size=0;
}
public boolean containsKey(K key) {
return mmap.containsKey(key);
}
public List<V> get(K key) {
return mmap.get(key);
}
public boolean isEmpty() {
return mmap.isEmpty();
}
public Set<K> keySet() {
return mmap.keySet();
}
public Collection<List<V>> valueLists() {
return mmap.values();
}
public void put(K key, V value) {
List<V> vlist = mmap.get(key);
if (null==vlist) {
vlist = new LinkedList<V>();
mmap.put(key, vlist);
}
vlist.add(value);
++size;
}
public List<V> remove(Object key) {
List<V> vlist = mmap.remove(key);
if (null!=vlist) {
size = size - vlist.size() ;
}
return vlist;
}
public int size() {
return size;
}
public String toString() {
return mmap.toString();
}
}
यहाँ एक अल्पविकसित परीक्षण है
size (1) = 2
size (2) = 3
size (3) = 2
Total size = 7
{1=[Value1, Value4], 2=[Value2, Value6, Value7], 3=[Value3, Value5]}
दो तत्व एक ही वाई समन्वय, क्या आप ** आप ** पुट है, तो प्रथम? क्या कोई और मानदंड है? – OscarRyz