JAVA

Map을 List로 변환해서 PageImpl에 담기

잔망루피 2022. 7. 27. 22:00
Map<String, PostResponseDto> postDto=postService.findAll();

int len_postDto=postDto.size();
int start=(int) pageable.getOffset();
int end = Math.min((start + pageable.getPageSize()), len_postDto);

Page<PostResponseDto> page=new PageImpl<>(new ArrayList<PostResponseDto>(postDto.values()).subList(start, end), pageable, len_postDto);

Map 타입 postDto의 값을 ArrayList에 담아서 리스트를 생성한다.

LinkedList는 데이터가 많을수록 접근성이 떨어지기 때문에 ArrayList를 선택했다.

subList로 start에서 end까지 자른다.(정확하게는 말하면, start에서 end-1까지)

start와 end가 같으면 빈 리스트가 리턴된다.

 

 

 

참고 👇

https://stackoverflow.com/questions/66518145/implement-paging-for-java-map

 

Implement Paging for Java Map

I have this Map of Java objects which I would like to display as pages into UI: Map<Integer, CategoryFullDTO> list = new HashMap<>(); list.put(1, CategoryFullDTO.builder().id(1).title(&

stackoverflow.com

 

https://docs.oracle.com/javase/8/docs/api/java/util/List.html#subList-int-int-

 

List (Java Platform SE 8 )

An ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the lis

docs.oracle.com

 

https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/PageImpl.html

 

PageImpl (Spring Data Core 2.7.2 API)

 

docs.spring.io

 

반응형

'JAVA' 카테고리의 다른 글

TreeMap  (0) 2022.07.28
List를 Map으로 변환하기  (0) 2022.07.27
Build  (0) 2022.04.29
Character  (0) 2021.10.24
stream  (0) 2021.10.13