मेरे पास एक map<String, Object> और int[] की एक सरणी है जिसमें मानचित्र कुंजियां शामिल हैं। क्या लूप का उपयोग किए बिना चाबियों को int में बदलने का एक अच्छा और छोटा तरीका है?

myArray = myMap.keySet().toArray(new int[5]);

मैं Java 8 का उपयोग करता हूं। धन्यवाद!

1
dardy 6 अक्टूबर 2016, 11:25

2 जवाब

सबसे बढ़िया उत्तर

मान लें कि आपकी सभी String कुंजियों को पूर्णांक के रूप में सुरक्षित रूप से पार्स किया जा सकता है:

int[] keys = myMap.keySet().stream().mapToInt(Integer::parseInt).toArray();
  • keySet() एक Set<String> देता है।
  • stream() एक Stream<String> देता है।
  • mapToInt() प्रत्येक String पर Integer.parseInt() लगाकर उस Stream<String> को एक IntStream में मैप करता है।
  • toArray(), IntStream के सभी तत्वों की एक सरणी देता है।
7
Eran 6 अक्टूबर 2016, 11:27
myMap.keySet().toArray(); // returns an array of keys
myMap.values().toArray(); // returns an array of values

ध्यान दें! ध्यान दिया जाना चाहिए कि दोनों सरणियों का क्रम समान नहीं हो सकता है।

0
thomas.adamjak 6 अक्टूबर 2016, 11:37