オープンチャットルーム


エンコーディングテスト練習-オープンチャットルーム

  • オープンチャットルーム
    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を使用して同じキーコンテンツのみを更新し、idmapを事前に作成します.以降の各ケースにおいて、生成されたコンテンツをリストに並べて並べばよい.

  • 技術:リストを並べ替えるためのtoArray()、toArray(T[]a)
    リストを配列にするtoArray()-java.util.リストパラメータとして受信した配列のサイズは、リストより小さい場合は貼り付け、リストより大きい場合はnullに入る.
    double、longなど他のオリジナルタイプではだめです.
    -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());