2011-01-27 11 views
19

मैं मानचित्र में कुछ महत्वपूर्ण मूल्यों डाल करने के लिए कोशिश कर रहा हूँ और उन्हें उसी क्रम में पुनः प्राप्त करने के रूप में वे डाला गया कोशिश कर डाला गया। उदाहरण के लिए नीचे मेरी कोडउसी क्रम के साथ मानचित्र में कुंजी पाने के लिए के रूप में वे

import java.util.*; 
import java.util.Map.Entry; 

public class HashMaptoArrayExample { 

    public static void main(String args[]) 

    { 
    Map<String,Integer> map= new HashMap<String,Integer>(); 

    // put some values into map 

    map.put("first",1); 
    map.put("second",2); 
    map.put("third",3); 
    map.put("fourth",4); 
    map.put("fifth",5); 
    map.put("sixth",6); 
    map.put("seventh",7); 
    map.put("eighth",8); 
    map.put("ninth",9); 



    Iterator iterator= map.entrySet().iterator(); 
     while(iterator.hasNext()) 
     { 
      Entry entry =(Entry)iterator.next(); 
      System.out.println(" entries= "+entry.getKey().toString()); 
     } 

    } 
} 

मैं

first second third fourth fifth sixth ..... 

नीचे के रूप में कुंजी को पुनः प्राप्त करना चाहते हैं लेकिन यह मेरी उत्पादन में नीचे

OUTPUT 

ninth eigth fifth first sixth seventh third fourth second 
+0

डुप्लिकेट ?? http://stackoverflow.com/questions/663374/java-ordered-map –

+0

java.util.LinkedHashMap और कभी भी कभी भी java.util.HashMap का उपयोग न करें जब तक कि आपके पास बहुत मजबूत कारण न हो (यानी कम स्मृति पदचिह्न और पुनरावृत्ति की कमी)। इमो, हैश मैप जावा.टिल में सबसे खराब डेटा संरचना है (शायद java.util द्वारा पीटा गया। केवल स्टैक) – bestsss

+0

@msalvadores बिल्कुल नहीं। वह प्रविष्टियों को क्रमबद्ध करने के बारे में था (उदाहरण के लिए, उदाहरण के लिए), यह उनके बारे में है कि उन्हें उसी क्रम में वापस लौटाया जा रहा है, जिन्हें वे मानचित्र में जोड़े गए थे। – biziclop

उत्तर

53

आप HashMap है, जो अपने डेटा में कहीं भी एक प्रविष्टि व्यवस्था बनाए रखने नहीं करता है के साथ ऐसा नहीं कर सकते। LinkedHashMap पर देखें, जो इस आदेश को बनाए रखने के लिए ठीक से डिजाइन किया गया था।

+0

बहुत बहुत धन्यवाद। यह बहुत अच्छा काम किया। एक आखिरी सवाल। Iterator.hasNext() का उपयोग करने के बजाय मैं लूप – JavaGeek

+0

@ सुकुमार के लिए उन्नत का उपयोग कर सकता हूं: बिल्कुल: 'के लिए (मानचित्र। एंटर्री <..,..> प्रविष्टि: map.entrySet()) {...} '। –

+1

सुनिश्चित करें कि आप (x: y के लिए) प्रभावी ढंग से पुनरावर्तक को संकलित कर सकते हैं; हैनक्स्ट(), अगला() – bestsss

3

HashMap एक है के रूप में कुछ यादृच्छिक क्रम में प्रदर्शित है हैश टेबल। इसका मतलब है कि जिस क्रम में कुंजी डाली जाती है वह अप्रासंगिक है, क्योंकि वे इस क्रम में संग्रहीत नहीं हैं। जिस पल में आप एक और कुंजी डालेंगे, आखिरी कुंजी क्या है, इस बारे में जानकारी भूल गई है।

आप प्रविष्टि आदेश में याद रखना चाहते हैं, तो आप एक अलग डेटा संरचना का उपयोग करने की जरूरत है।

+0

..... कौन सा? – CodyBugstein

+0

@Imray जॉन के जवाब पर देखो। –

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