में कनवर्ट करने के लिए मुझे HashMap<String, Object>
को सरणी में कनवर्ट करने की आवश्यकता है; क्या कोई मुझे दिखा सकता है कि यह कैसे हुआ?जावा: हैश मैप <स्ट्रिंग, ऑब्जेक्ट> को सरणी
उत्तर
hashMap.keySet().toArray(); // returns an array of keys
hashMap.values().toArray(); // returns an array of values
संपादित
ध्यान दिया जाना चाहिए कि दोनों सरणियों के आदेश नहीं जब जोड़ी कुंजी/मान की जरूरत है यात्रा के लिए एक बेहतर दृष्टिकोण के लिए एक ही है, देखें oxbow_lakes जवाब हो सकता है। getKey
और getValue
के माध्यम से प्रत्येक प्रविष्टि आप (बेशक) प्राप्त कर सकते हैं दोनों कुंजी और मूल्य से
hashMap.entrySet().toArray(); // returns a Map.Entry<K,V>[]
:
दरअसल, यह कोड कोई गारंटी नहीं देता है कि हैश मैप.कीसेट()। ToArray() [0] मूल मानचित्र से हैशैप.वल्यूज()। ToArray() [0] के लिए मूल कुंजी होगी। तो यह बेहद * खतरनाक है * – CrackerJack9
@ क्रैकर जैक 9 क्या आप समझा सकते हैं? –
कुंजी दो सरणी में उनके मूल्यों के अनुरूप नहीं होगी। –
आप कुंजी और मूल्यों चाहते हैं, आप हमेशा इस entrySet
के माध्यम से कर सकते हैं तरीकों
2017 में काम नहीं कर रहा है .. .. – OhadR
@ ओहडआर यह वास्तव में – Midnightas
काम करता है? मैं जावा 8 पर काम करता हूं? – OhadR
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
Object[][] twoDarray = new String[map.size()][2];
Object[] keys = map.keySet().toArray();
Object[] values = map.values().toArray();
for (int row = 0; row < twoDarray.length; row++) {
twoDarray[row][0] = keys[row];
twoDarray[row][1] = values[row];
}
for (int i = 0; i < twoDarray.length; i++) {
for (int j = 0; j < twoDarray[i].length; j++) {
System.out.println(twoDarray[i][j]);
}
}
यदि आपके पास HashMap<String, SomeObject> hashMap
तो
hashMap.values().toArray();
एक ऑब्जेक्ट [] वापस कर देगा। आप प्रकार SomeObject की एक सरणी चाहते हैं बजाय, आप इस्तेमाल कर सकते हैं:
hashMap.values().toArray(new SomeObject[0]);
मुझे लगता है कि आप 'SomeObject'' की सरणी के लिए 'keySet()' के बजाय 'मान()' का अर्थ है। –
आप 0 का उपयोग करने के बजाय सरणी आकार अपफ्रंट निर्दिष्ट करके प्रदर्शन में भी सुधार कर सकते हैं। उदाहरण यहां देखें: http://stackoverflow.com/a/5061692/265877 – Alex
कुंजियां और मान से प्रत्येक सरणी के लिए सही क्रम की गारंटी करने के लिए, का उपयोग इस (अन्य उत्तर का उपयोग अलग-अलग Set
रों जो की पेशकश नहीं आदेश के रूप में गारंटी।
Map<String, Object> map = new HashMap<String, Object>();
String[] keys = new String[map.size()];
Object[] values = new Object[map.size()];
int index = 0;
for (Map.Entry<String, Object> mapEntry : map.entrySet()) {
keys[index] = mapEntry.getKey();
values[index] = mapEntry.getValue();
index++;
}
सही! हम दोनों कुंजी और मूल्य प्राप्त करते हैं, ऑटो प्रकार ग्रहण में भरते हैं, लंबे समय से इसकी तलाश करते हैं, thx! –
crackerjacks सुझाव के लिए एक वैकल्पिक, अगर आप व्यवस्था बनाए रखने के HashMap चाहते हैं। इसके स्थान पर कोई LinkedHashMap उपयोग करने पर विचार कर सकता है जहां तक im बारे में पता के रूप में यह सुविधा है एक HashMap के समान है, लेकिन यह फीफो है इसलिए यह उस क्रम को बनाए रखता है जिसमें आइटम जोड़े गए थे।
बहुत अच्छी बात, उस अंतर्दृष्टि के लिए धन्यवाद, मेरी मदद की! :) – mgibson
फीफो टिप –
+1 के लिए धन्यवाद LinkedHashMap – CrackerJack9
आप इसे भी आजमा सकते हैं।
public static String[][] getArrayFromHash(Hashtable<String,String> data){
String[][] str = null;
{
Object[] keys = data.keySet().toArray();
Object[] values = data.values().toArray();
str = new String[keys.length][values.length];
for(int i=0;i<keys.length;i++) {
str[0][i] = (String)keys[i];
str[1][i] = (String)values[i];
}
}
return str;
}
यहां मैं स्ट्रिंग का उपयोग रिटर्न प्रकार के रूप में कर रहा हूं। आप इसे अपने द्वारा आवश्यक वापसी प्रकार में बदल सकते हैं।
प्रश्न 'हैश मैप() 'के बारे में है, लेकिन आपका समाधान' हैशटेबल() 'के बारे में है ... कुछ [अंतर] हैं (http://stackoverflow.com/a/40878/3595288) उनके बीच – Choletski
एक आयाम ऐरे में प्राप्त करने के लिए।
String[] arr1 = new String[hashmap.size()];
String[] arr2 = new String[hashmap.size()];
Set entries = hashmap.entrySet();
Iterator entriesIterator = entries.iterator();
int i = 0;
while(entriesIterator.hasNext()){
Map.Entry mapping = (Map.Entry) entriesIterator.next();
arr1[i] = mapping.getKey().toString();
arr2[i] = mapping.getValue().toString();
i++;
}
दो आयाम सरणी में प्राप्त करने के लिए।
String[][] arr = new String[hashmap.size()][2];
Set entries = hashmap.entrySet();
Iterator entriesIterator = entries.iterator();
int i = 0;
while(entriesIterator.hasNext()){
Map.Entry mapping = (Map.Entry) entriesIterator.next();
arr[i][0] = mapping.getKey().toString();
arr[i][1] = mapping.getValue().toString();
i++;
}
मैं लगभग @kmccoy के रूप में ही इस्तेमाल किया है, लेकिन एक keySet()
के बजाय मैं इस
hashMap.values().toArray(new MyObject[0]);
@SuppressWarnings("unchecked")
public static <E,T> E[] hashMapKeysToArray(HashMap<E,T> map)
{
int s;
if(map == null || (s = map.size())<1)
return null;
E[] temp;
E typeHelper;
try
{
Iterator<Entry<E, T>> iterator = map.entrySet().iterator();
Entry<E, T> iK = iterator.next();
typeHelper = iK.getKey();
Object o = Array.newInstance(typeHelper.getClass(), s);
temp = (E[]) o;
int index = 0;
for (Map.Entry<E,T> mapEntry : map.entrySet())
{
temp[index++] = mapEntry.getKey();
}
}
catch (Exception e)
{
return null;
}
return temp;
}
//--------------------------------------------------------
@SuppressWarnings("unchecked")
public static <E,T> T[] hashMapValuesToArray(HashMap<E,T> map)
{
int s;
if(map == null || (s = map.size())<1)
return null;
T[] temp;
T typeHelper;
try
{
Iterator<Entry<E, T>> iterator = map.entrySet().iterator();
Entry<E, T> iK = iterator.next();
typeHelper = iK.getValue();
Object o = Array.newInstance(typeHelper.getClass(), s);
temp = (T[]) o;
int index = 0;
for (Map.Entry<E,T> mapEntry : map.entrySet())
{
temp[index++] = mapEntry.getValue();
}
}
catch (Exception e)
{return null;}
return temp;
}
- 1. स्ट्रिंग टू हैश मैप जावा
- 2. जावा, हैश मैप
- 3. स्थिर 2 डी स्ट्रिंग सरणी को हैश मैप
- 4. जावा कंसूरेंट हैश मैप
- 5. हैशसेट/हैश मैप जावा
- 6. हैश मैप
- 7. हैश मैप <स्ट्रिंग, बूलियन> सभी कुंजी को हैश मैप <स्ट्रिंग, इंटीजर> में कॉपी करें और शून्य को
- 8. हैश मैप
- 9. जावा स्टैक ओवरव्लो एररलिस्ट को हैश मैप
- 10. जावा हैश मैप बनाम JSONObject
- 11. सी # जावा हैश मैप समकक्ष
- 12. जावा हैश मैप <K,V> एक्सएमएल और
- 13. कस्टम हैश मैप कार्यान्वयन
- 14. हैश मैप को ArrayList
- 15. जावा हैश मैप सॉर्टिंग <स्ट्रिंग, इंटीजर>। इसे कैसे क्रमबद्ध करें?
- 16. जांचें कि ऑब्जेक्ट स्ट्रिंग, हैश मैप, या हैश मैप का उदाहरण है []
- 17. हैश मैप
- 18. हैश मैप
- 19. रूबी विधि सरणी # << हैश
- 20. हैश मैप
- 21. हैश मैप
- 22. हैश मैप
- 23. हैश मैप
- 24. हैश मैप कुंजी
- 25. जावा हैश मैप आइटम को हैश मैप या हैशटेबल में कैसे करता है?
- 26. AutoCompleteTextView onItem हैश मैप
- 27. हैश मैप को समझना <K,V>
- 28. वीबी.नेट हैश मैप समकक्ष
- 29. जावा हैश मैप या पहचान हैशैप
- 30. ऐरेलिस्ट या हैश मैप
आप कुंजी चाहते हैं, मूल्यों, या दोनों किया था? – harto