Page History
...
데이터로 검색조건을 축소하였으며 이후에 sorted , map 은 map식을 사용하여
랭킹을 부여한후 우리가 원하는 데이터 List로 랭킹 데이터로 변환하게 됩니다. 람다식을 사용한 이유는, SQL문은 절차식 코드가 아니며
어플리케이션에서도 절차식이 아닌 선언형을 사용함으로 SQL 사고방식과 유사하게 할수있고
람다식을 활용하였습니다실제 절차식 코드보다 커스텀한 데이터 변환처리를 훨씬 깔끔하게 할수가 있습니다.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
public void RankTest() { int[] score = {Integer.MIN_VALUE}; int[] no = {0}; int[] rank = {0}; List<AddressAgeRank> ageRankList = addressRepo.findByAgeBetween(10, 90).stream() .sorted((a,b) -> b.getAge() - a.getAge() ) .map(p -> { ++no[0]; if (score[0] != p.getAge()) rank[0] = no[0]; return new AddressAgeRank(p.getName(),score[0] = p.getAge(), rank[0] ); }) .collect(Collectors.toList()); ageRankList.forEach(item ->{ System.out.println(item.toString()); }); } |
...