[Stream] Java Stream을 이용한 배열 자르기
2020. 8. 16. 02:21ㆍ3_개발/3_1_JAVA
1. skip(숫자) : 선택한 숫자 이후의 데이터만 노출한다.
사용법 : [배열형 함수].stream().skip(3);
ex)
List<Cat> cats = Arrays.asList(
new Cat(1, "sana"),
new Cat(2, "momo"),
new Cat(3, "mina"),
new Cat(4, "jihyo"),
new Cat(5, "nayeon"),
new Cat(6, "jeongyeon ")
);
System.out.println("===============================");
cats.stream().skip(3).forEach(System.out::println);
위와 같이 6개의 객체를 넣고 skip(3)을넣으면 4번째 이후의 데이터부터 출력된다.
결과값
Cat [number=4, name=jihyo]
Cat [number=5, name=nayeon]
Cat [number=6, name=jeongyeon ]
2. limit(숫자) : 선택한 숫자 이전의 데이터만 노출한다.
사용법 : [배열형 함수].stream().limit(3);
ex)
List<Cat> cats = Arrays.asList(
new Cat(1, "sana"),
new Cat(2, "momo"),
new Cat(3, "mina"),
new Cat(4, "jihyo"),
new Cat(5, "nayeon"),
new Cat(6, "jeongyeon ")
);
System.out.println("===============================");
cats.stream().limit(3).forEach(System.out::println);
}
위와 같이 6개의 객체를 넣고 limit(3)을 넣으면 3번째 이전의 데이터만 출력된다.
결과값
===============================
Cat [number=1, name=sana]
Cat [number=2, name=momo]
Cat [number=3, name=mina]
위의 형태를 보면 생각나는게 있을 것이다.
그런 바로 페이징이다.
보통 페이징 처리를 할 때는 DB에서 (mysql은 limit, oracle은 rownum)을 이용해서 하는데
아주 가~~~~~~~~~끔 DB에서가 아니라 타 서비스에서 데이터 목록을 가져오고
java 단에서 페이징을 해야 하는 경우가 존재한다.
이럴 때 skip, limit를 이용하여 위의 DB 방식과 동일한 방식으로 페이징 처리가 가능하다.
'3_개발 > 3_1_JAVA' 카테고리의 다른 글
[기본 코딩] JAVA(자바) 가운데 글자 가져오기 (0) | 2020.08.16 |
---|---|
[기본 코딩] JAVA(자바) 구구단 출력(for문/while문) (0) | 2020.08.16 |
List 형태의 객체들의 null 체크 또는 개수가 존재하는지 확인(null과 isEmpty()의 차이) (0) | 2019.12.25 |
[Stream] Java Stream 정렬(sort) 사용법(sorted)(1) (0) | 2019.12.20 |
static 변수에서 @value 사용(properties 값을 static으로 선언) (0) | 2019.12.18 |