2011-09-29 22 views
12

में एक सरणी स्टोर करें मैं जावा में नया हूं। मैं हैश मैप में पूर्णांक मानों की एक सरणी कैसे संग्रहीत कर सकता हूं, उसके बाद मैं इस हैश मैप को एक txt फ़ाइल में लिखता हूं लेकिन इस समय यह महत्वपूर्ण नहीं है। मैं एकल फ़ील्ड स्टोर कर सकता हूं लेकिन सरणी नहीं। कोई विचार ?हैश मैप

public void salveazaObiectulCreat(String caleSpreFisier) { 

    HashMap map = new HashMap(); 

    map.put ("Autorul",numelePrenumeleAutorului); 
    map.put ("Denumirea cartii",denumireaCartii); 
    map.put ("Culoarea cartii",culoareaCartii); 
    map.put ("Genul cartii",gen); 
    map.put ("Limba",limba); 
    map.put ("Numarul de copii",numarulDeCopii); 
    map.put ("Numarul de pagini",numarulDePagini); 
    map.put ("Pretul cartii",pretulCartii); 

    try { 

     File file = new File(caleSpreFisier); 

     FileOutputStream f = new FileOutputStream(file); 

     ObjectOutputStream s = new ObjectOutputStream(f);   

     s.writeObject(map); 

     s.close(); 

     } catch(Exception e){ 

      System.out.println("An exception has occured");  
    } 
} 
+1

पूर्णांक की एक सरणी? क्या आप हैश मैप में एकाधिक सरणी डालने की कोशिश कर रहे हैं? –

+0

सरणी और किसी अन्य वस्तु के बीच कोई अंतर नहीं होना चाहिए। आपने क्या प्रयास किया – biziclop

+0

मैप.पूट में उन मान स्ट्रिंग्स हैं, अब मैं int मानों (कुछ अंक) –

उत्तर

18
HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>(); 
HashMap<String, int[]> map = new HashMap<String, int[]>(); 

एक चुनना है, उदाहरण के

HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>(); 
map.put("Something", new ArrayList<Integer>()); 
for (int i=0;i<numarulDeCopii; i++) { 
    map.get("Something").add(coeficientUzura[i]); 
} 

या सिर्फ

HashMap<String, int[]> map = new HashMap<String, int[]>(); 
map.put("Something", coeficientUzura); 
0

आप एक कुंजी के लिए अनेक मान स्टोर करने के लिए (यदि मैं तुम्हें सही ढंग से समझ), तो आप की कोशिश कर सकते हैं, तो एक MultiHashMap (विभिन्न पुस्तकालयों, न केवल आम-संग्रह में उपलब्ध है)।

21
नहीं

सही प्रश्न के बारे में सुनिश्चित लेकिन यह आप के लिए क्या देख रहे है के लिए?

public class TestRun 
{ 
    public static void main(String [] args) 
    { 
     Map<String, Integer[]> prices = new HashMap<String, Integer[]>(); 

     prices.put("milk", new Integer[] {1, 3, 2}); 
     prices.put("eggs", new Integer[] {1, 1, 2}); 
    } 
} 
0

यदि आप उस मानचित्र में किसी सरणी के बजाय मूल्य को सूची के रूप में सहेज सकते हैं तो आपका जीवन अधिक आसान होगा।

6

हां, मानचित्र इंटरफ़ेस आपको Arrays को मानों के रूप में स्टोर करने की अनुमति देगा।

int[] val = {1, 2, 3}; 
Map<String, int[]> map = new HashMap<String, int[]>(); 
map.put("KEY1", val); 

इसके अलावा, आपके उपयोग के मामले के आधार पर आप Multimap समर्थन guava द्वारा की पेशकश को देखने के लिए चाहते हो सकता है: यह एक बहुत ही सरल उदाहरण है।

-1

आप वस्तुओं को हैश मैप में स्टोर कर सकते हैं।

HashMap<String, Object> map = new HashMap<String, Object>();

तुम बस इसे वापस बाहर सही ढंग से कास्ट करने के लिए की आवश्यकता होगी।

संबंधित मुद्दे