Collection에 있는 데이터들을 특정 필드를 기준으로 정렬하는 역할에 대해 질문드립니다.

2017-01-18 18:25
@Test
@Transactional
public void 공유수_정렬_테스트 () {
    List<News> newsList = newsDao.getNews();

    List<News> sortedBySendCount = this.getSortedNewsListBySendCount(newsList);

    logger.debug("debug - {}", sortedBySendCount );
}


private List<News> getSortedNewsListBySendCount (List<News> newses) {
    Collections.sort(newses, (obj1, obj2) -> obj2.getNewsSendCount().getAllCount().compareTo(obj1.getNewsSendCount().getAllCount()));

    return newses;
}

위의 코드처럼 정렬을 하고 싶은데 (DB에서 정렬을 주어 가져오면 안되는 상황이여서 일단 데이터를 가져와서 정렬을 해주어야 합니다.)

위의 private 메소드를 News 라는 도메인 객체에 넣어주려고 생각을 했는데 호출을 위해서는 해당 객체를 생성해서 사용하거나 메소드를 static 메소드로 두어야 하여 조금 어색하다는 느낌이있었습니다. (뉴스 기사를 정렬하는것이니 뉴스객체에서 해줘야 맞지 않나 생각했습니다.)

이런식의 리스트를 정렬하는 메소드는 따로 데이터를 비교하는 객체를 만들어서 역할을 해당 객체에 주는 방법으로 하는게 좋을까요? 아니면 뉴스객체에서 static 메소드로 두어 정렬을 해주는게 좋을까요?

아직 이런식의 프로그래밍이 익숙하지가 않아 조금 헷갈리는것 같습니다.

2개의 의견 from SLiPP

의견 추가하기

연관태그

← 목록으로