2013-11-15 5 views
-3

Вот код:Как я могу разделить HashMap

HashMap<String, Integer> arr = new HashMap<String, Integer>(); 
arr.put("one", 1); 
arr.put("two", 2); 
arr.put("three", 3); 

, как я могу получить все строки как String [] массив и все целые числа, как Int [] массив?


спасибо всем! все правильно, если кто-то имеет те же проблеммы, ответ:

String[] entry =(String[])arr.keySet().toArray(new String[arr.size()]); 
Integer[] entry_values =(Integer[])arr.values().toArray(new Integer[arr.size()]); 
+1

см: http://stackoverflow.com/questions/3293946/the-easiest-way-to-transform-collection-to-array –

+0

и получить ключи, я думаю, что команда является .keySet() и значениями, вызывая значения(), но im не уверен, что команды точно соответствуют –

+0

. Посмотрите эту тему http://stackoverflow.com/questions/12960265/retrieve-all-values- из-hashmap-keys-in-an-arraylist-java –

ответ

1

Вы можете использовать keySet() и values() методы, чтобы получить строки и целые числа в одиночку. Они оба возвращают коллекции, поэтому вы можете называть их toArray.

2

1) arr.keySet().toArray(new String[arr.size()]);

2) arr.values().toArray(new Integer[arr.size()]);

1

Там нет способа, чтобы получить свои товары по их типу, но их функции в карте.

HashMap<String, Integer> arr = new HashMap<String, Integer>();  
Set<String> keys = arr.keySet(); // all keys. 
Collection<Integer> values = arr.values(); //all values. 

вы можете позвонить toArray() на оба ваших результатов. Добавьте новый массив в качестве аргумента, чтобы определить тип результата.

String[] strings = keys.toArray(new String[arr.size()]); 
Integer[] ints = values.toArray(new Integer[arr.size()]); 
+0

by String [] strings = keyss.toArray (новая строка []); есть я ошибка java: размер массива отсутствует – user2995801

+0

вы можете добавить любой размер, если размер мал, создается новый массив с правильным размером. Добавление правильного размера сохраняет эту операцию. – Simulant

0

Попробуйте это:

String strArr[] = new String[arr.size()]; 
arr.keySet().toArray(strArr); // Populate the String array with map keys 

Integer intArr[] = new Integer[arr.size()]; 
arr.values().toArray(intArr); // Populate the Int array with map values 
Смежные вопросы