Necesito escribir un método que convierta la masa en Map
i es una matriz, por lo que cuando lo coloca como la clave de su Map , obtiene Map<Object[],Object> .
No necesitas un bucle anidado:
public Map<Character, Integer> arrayToMap(Object[][] args) { Map<Character, Integer> map = new LinkedHashMap<>(); for (Object[] i : args) { map.put((Character) i[0], (Integer) i[1]); } return map; } Cada matriz interna de su matriz 2D debe convertirse en un par de clave y valor en el Map de salida.
Use Stream API con el método Callectors.toMap:
public static Map<Character, Integer> arrayToMap(Object[][] arr) { return Arrays.stream(arr) .collect(Collectors.toMap(o -> (Character)o[0], o -> (Integer)o[1], (oldV, newV) -> newV, LinkedHashMap::new )); }La matriz 2D en Java es una matriz de matrices ; es decir, en su ejemplo, tiene una matriz 1D de matrices 1D con exactamente 2 elementos [char, int]
public static void main(String[] args) { Object[][] arr = { { '1', 1 }, { ' ', 5 }, { '2', 2 }, { '3', 3 }, { '4', 4 }, { '5', 5 }, { '6', 6 } }; Map<Character, Integer> map = arrayToMap(arr); System.out.println(map); } public static Map<Character, Integer> arrayToMap(Object[][] arr) { Map<Character, Integer> map = new HashMap<>(); for (int i = 0; i < arr.length; i++) map.put((char)arr[i][0], (int)arr[i][1]); return map; }