2012-03-04 20 views
9

में सम्मिलन आदेश जारी रखता है मुझे एंड्रॉइड एप्लिकेशन के लिए जावा में मानचित्र का उपयोग करने की आवश्यकता है। लेकिन समस्या यह है कि सूची स्वचालित रूप से क्रमबद्ध हो जाती है। डेटा को सम्मिलित करने के समान डेटा में डेटा प्राप्त करने के लिए मैं मानचित्र का उपयोग कैसे करूं।नक्शा (संग्रह) जो जावा

+0

का उपयोग कर इसे विवेकपूर्ण हो सकता है शीर्षक नाम बदलने के लिए बेहतर है कि तथ्य यह है कि आप एक नक्शे में रुचि रखते हैं कि प्रविष्टि का कहना है प्रतिबिंबित करने के लिए मिल सकता है आदेश –

+0

क्या सूची स्वचालित रूप से क्रमबद्ध हो जाती है? क्या यही समस्या है? या यह आपकी समस्या का हिस्सा है * कथन? * प्रश्न अस्पष्ट बनी हुई है। – EJP

उत्तर

18

आपको इस उद्देश्य के लिए LinkedHashMap का उपयोग करना चाहिए .. अधिक जानकारी के लिए Android Docs और Java Docs पर जाएं।

2

LinkedHashMap डेटा को उसी क्रम में रखेगा जैसा इसे डाला गया है।

5

LinkedHashMap सम्मिलन आदेश बनाए रखता है।

+1

इतना ही नहीं, इसे कैश बनाने के लिए एक आसान हुक मिला है। बहुत अच्छा। – Argyle

2

जैसा कि आपने और मैंने पाया है, LinkedHashMap बहुत उपयोगी नहीं है। (क्या अपने अस्तित्व के बिंदु, वैसे भी है?)

मैं एक hashlist (शब्दार्थ, मुझे लगता है कि यह hashedlist बुलाया गया है चाहिए)

http://code.google.com/p/synthfuljava/source/browse/trunk/gwt/util/org/synthful/gwt/util/HashList.java

यह एक ArrayList और एक hashmap है की है। सरणी सूची कुंजी स्टोर करता है।

एक hashlist.put (कुंजी, मूल्य)

  • एक map.put (कुंजी, मूल्य)
  • के साथ ही एक list.add (key) प्रदर्शन करेंगे

एक हैशलिस्ट.get (int स्थिति) - एक map.get (list.get (स्थिति))

यह हैशवेक्टर और हैशट्री कक्षाओं का एक सरलीकरण है जिसे मैंने 2003 में लिखा था जब मुझे जावास्क्रिप्ट मॉडल करने की आवश्यकता थी और जावा में एक्सएमएल ऑब्जेक्ट्स, अपना ऑर्डर बरकरार रखते हैं। हालांकि, मुझे gwt serializability के लिए हैशट्री को सरल बनाने के लिए समय या आवश्यकता नहीं मिली।

दूसरे विचारों पर, जीडब्ल्यूटी ने हैशप को कैसे लागू किया? मुझे लगता है कि मेरे पास समय है, मुझे हैशपैप को फास्टस्ट्रिंगमैप से बदलना होगा। Google का faststringmap सार्वजनिक नहीं है। यह जीडब्ल्यूटी कंपाइलर निजी उपयोग के लिए है। तो तुम एक सार्वजनिक वर्ग में अपने कोड कॉपी करके उसे बदलना होगा: http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/client/ui/FastStringMap.java

http://jectbd.com/?p=95

हो सकता है, GWT संकलक चुपचाप इसे किसी तरह का इस्तेमाल किया है होगा - मैं micromanage करने के लिए संकलक faststringmap साथ hashmap की जगह परेशान करना चाहिए?

Btw,

तुम अब भी googling "GoogleCode synthful hashtree" द्वारा hashtree के लिए दिखाई दे सकता है।

हैश्री आपको वस्तुओं का पेड़ बनाने की अनुमति देता है और आपको पथ की तरह एक डॉट-कन्वेंशन xpath का उपयोग करके अपनी ऑब्जेक्ट्स को पुनर्प्राप्त करने की अनुमति देता है।

hashtree.get("hello.dolly.how.are.you"); 

विभाजक respecified किया जा सकता है, ताकि आप की दुकान या

hashtree.get("hello/dolly/how/are/you"); 
hashtree.put("hello/dolly/how/are/you", value); 
+1

ऐसा लगता है कि आप LinkedHashMap के उद्देश्य को नहीं समझते हैं, आप इसकी अपेक्षा कहां से प्राप्त करते हैं? –

+0

वास्तव में उत्सुक, लिंक्ड हैशैप का कौन सा पहलू इसे ओपी के उद्देश्य के लिए अपर्याप्त बनाता है? –

+0

linkedhashmap.insert (6, कुंजी, मूल्य)? linkedhashmap.remove (7)? linkedhashmap.put (20, कुंजी, मूल्य)? ऐसा लगता है कि जब मैं लिनक्स का उपयोग कर सकता हूं तो मैं एमएस विंडोज़ के उद्देश्य को समझ नहीं पा रहा हूं। –

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