2016-09-14 3 views
-2

여러 개의 클라이언트가 있고 각각 고유 ID가 있습니다. 특정 클라이언트에게 메시지를 보내려면 내 서버 클래스에 클라이언트와 ID를 저장해야합니다.올바른 방법으로 ID를 저장하는 방법

ID를 ClientHandler 클래스에 저장하고 모든 ClientHandler를 목록/배열에 넣은 다음 목록을 반복하여 올바른 ID를 검색하거나 ID 및 ClientHandler를 HashMap과 같은 맵에 저장하는 것이 더 좋습니까?

각 클라이언트의 PrintWriter와 동일합니다. 서버 클래스의 목록에있는 각 PrintWriter를 저장해야합니까? 아니면 ClientHandlers/Sockets를 저장하고 매번 list.get (xx) .getPrintWriter()를 사용해야합니까?

+1

물론 해시 맵을 사용하십시오. 왜 O (N) * 이상 * O * (1) *를 선택 하시겠습니까? 이상한 질문입니다. – EJP

답변

0

이것은 프로그래밍에서 고전적인 절충안입니다. 배열을 사용하면 HashMap만큼의 메모리가 필요하지 않지만 거의 항상 느려질 것입니다. 둘 중 어느 것이 더 중요한지 결정해야합니다.

그런데 하드웨어의 요즘과 같이, 당신은 HashMap을 사용하지 않으려면 정말 인색 할 필요가 있습니다.

관련 문제