오픈채팅방
import java.util.*;
class Solution {
public String[] solution(String[] record) {
Map<String, String> idmap = new HashMap<String, String>();
ArrayList<String> arr = new ArrayList<String>();
for(String str : record){
String[] line = str.split(" ");
if(line[0].equals("Enter") || line[0].equals("Change")){
idmap.put(line[1],line[2]);
}
}
for(String str : record){
String[] line = str.split(" ");
if(line[0].equals("Enter")){
arr.add(idmap.get(line[1])+"님이 들어왔습니다.");
}else if(line[0].equals("Leave")){
arr.add(idmap.get(line[1])+"님이 나갔습니다.");
}
}
String[] answer = new String[arr.size()];
arr.toArray(answer);
return answer;
}
}
서술 - HashMap이 같은 key면 내용만 update되는 것을 이용하여 미리 idmap을 만들어놓는다. 이후 각 경우에 따라 생성되는 내용을 리스트에 담아 배열화 시켜주면 끝
기술 : 리스트를 배열로 만드는 toArray(), toArray(T[] a)
리스트를 배열로 만드는 toArray() - java.util.List 인자로 받는 배열의 크기는 리스트보다 작으면 붙여주고 크면 null로 들어간다.
double, long 등 다른 primitive 타입은 안된다.
-List to Array
1. Arrays.asList()
List<String> list = new ArrayList<>(Arrays.asList(arr));
2. Collectors.toList()
String[] arr = { "A", "B", "C" };
// 배열 -> List로 변환
List<String> list = Stream.of(arr).collect(Collectors.toList());