오늘 과제를 하던 중 놀라운 사실을 알게 되었다. 블로그 포스트 같은 포스트를 Map에 담고 있었는데, Map 인터페이스는 내가 넣은 순서대로 나오지 않을 수 있다.
컬렉션 프레임워크에 대한 기본적인 개념도 제대로 모르고 쓰고 있던 것 같아 급하게 찾아보았다. List 인터페이스는 순서가 있지만, Set이나 Map은 순서를 보장하지 않는다.
게시판에서 최신의 글일수록 위에 떠야 한다. 그 말은 순서가 있어야한다는 것인데, 물론 포스트의 작성 날짜 기준으로 소팅을 해서 어떻게든 구현할 수도 있긴 하겠지만 기본적으로 컬렉션 프레임워크들의 속성은 인지하고 있어야 했다. Map은 입력한 순서대로 나오는 게 보장이 되지 않는다. Map을 구현한 클래스 중 LinkedHashMap은 넣은 순서대로 보장이 되긴 하기 때문에 Map을 사용하고 싶은데 순서가 보장되기를 바란다면 LinkedHashMap을 사용해야 한다.
강의에서 나온 계좌는 순서가 중요한 게 아니기 때문에 HashMap으로 관리해도 되지만 포스트는 계좌와 특성이 다르기 때문에 HashMap보다는 ArrayList로 관리하는 것이 더 적합하다.
강의에서 나온 방식을 그대로 사용하려고 하지 말고 왜 그렇게 했는지를 항상 생각하자! 그리고 콜렉션 프레임워크의 특성을 고려해서 가장 바람직한 클래스를 이용하자.