Java 8은 위의 대답에서 @Gerald가 잘 설명한대로 데이터 오브젝트로 변환하기위한 효율적인 솔루션을 제공합니다.
그러나 순진한 접근 방식으로이 작업을 수행하는 데 관심이 있다면 다음 코드를 구현했습니다. 출발점으로
Map<String, ArrayList<String>> map = new HashMap<>();
String[] arr1 = { "I", "am", "good" };
List<String> list = Arrays.asList(arr1);
map.put("Max", new ArrayList<String>(list));
arr1 = new String[]{"I", "am", "always", "excited"};
list = Arrays.asList(arr1);
map.put("Peter", new ArrayList<String>(list));
System.out.println(map);
// OUTPUT: {Max=[I, am, good], Peter=[I, am, always, excited]}
Object[][] data = new Object[map.size()][];
int i = 0;
// iterate the map and store to Object data
for(Map.Entry<String, ArrayList<String>> entry : map.entrySet()) {
data[i] = new Object[entry.getValue().size() + 1]; // number of records from list + (One) map key
data[i][0] = entry.getKey(); // save key at '0'th index
int j = 1; // iterate the ArrayList to save values in the same row.
for(String s : entry.getValue()) {
data[i][j++] = s;
}
i++;
}
// Printing the data object
for(i = 0; i < data.length; i++) {
for(int j = 0; j < data[i].length; j++) {
System.out.print(data[i][j] + " ");
}
System.out.println();
}
// OUTPUT :
//Max I am good
//Peter I am always excited
, 당신은 res.values ()를 사용할 수 있습니다. toArray()를 ArrayList를 얻을 [],하지만 그 시점에서 당신은 루프가하려는 배열을 통해 모든 변환 배열에 arraylists. –
예, 요점은 수직으로 값을 가졌기 때문에 수평으로 만들어야합니다. – Salman
입력과 출력의 관계를 설명하지 않았습니다. 표준 루프를 사용하여 변환을 시연하는 것이 도움이 될 수 있습니다. – shmosel