2017-02-20 31 views
-3

В настоящее время он сохраняет одно значение для всех индексов массива и сохраняет последний в конце. Я хочу сохранить все значения карты в массив int []. Я завязывания что-то вроде:Как сохранить карту (например: HashMap <Character, Integer> map) целочисленное значение в массив int []?

HashMap<Character, Integer> map = new HashMap<>(); 
int values[] = new int[map.size()]; 

for(int v: map.values()){ 

    for(int i=0;i<values.length;i++){ 
     values[i] = v;    
            } 
         } 
+10

Я полагаю, что первое, что вы делаете, внимательно посмотрите на код, который вы должны понять, почему он делает это. Подсказка: вам не нужен вложенный цикл. –

ответ

0

Вы можете получить Set из значений map и превратить его в массив с:

HashMap<Character, Integer> map = new HashMap<>(); 
//populate map 
Integer[] values = (Integer[])map.values().toArray(); 
1

Так что вы хотите сделать, это добавить каждый от values от карты a values[] в этом случае, values - Integer. Для этого вы должны пропустить значения на карте и добавить их в массив.

Для этого вы можете сделать что-то вроде этого:

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

    // fill map 

    int[] valuesArray = new int[map.size()]; 
    int i = 0; 

    for (int v : map.values()) { 
     valuesArray[i] = v; 
     i++; 
    }