Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java Singleton
- HandlerMethodArgumentResolver
- Java Rest
- Socket is closed
- Request Body 여러 번 사용
- AfterMapping
- mTLS
- 이중정렬
- 데이터 압축
- java
- try - with - resources
- Jndi DataSource
- Graphql Client
- Srping MVC
- 상호 인증
- Unchecked Exception
- mapstruct
- NoUniqueBeanDefinitionException
- Tomcat DBCP
- 바이트 절삭
- requestheaderdto
- Reading HttpServletRequest Multiple Times
- graphql
- tomcat jndi
- Sub Bytes
- Checked Exception
- 개방 폐쇄 원칙
- WildFly
- Open Close Principal
- Java Graphql
Archives
- Today
- Total
Developer Sang Guy
Stram Api를 활용한 정렬 본문
Stram Api를 활용한 정렬, 이중 정렬, 오름차순, 내림차순 적용 방법을 알아보자
정렬에 사용할 User 클래스
@Builder
@Getter
@ToString
public class User {
private String name;
private Integer age;
}
정렬에 사용할 Sample User List
List<User> users = Arrays.asList(
User.builder().name("김씨").age(25).build(),
User.builder().name("김씨").age(16).build(),
User.builder().name("김씨").age(33).build(),
User.builder().name("이씨").age(19).build(),
User.builder().name("정씨").age(22).build());
코드 및 결과
/* 이름 오름차순 */
Comparator<User> nameDesc = Comparator.comparing(User::getName);
users.stream().sorted(nameDesc).forEach(System.out::println);
/* 결과 */
User(name=김씨, age=25)
User(name=김씨, age=16)
User(name=김씨, age=33)
User(name=이씨, age=19)
User(name=정씨, age=22)
/* 이름 내림차순 */
Comparator<User> nameAsc = Comparator.comparing(User::getName, Comparator.reverseOrder());
users.stream().sorted(nameAsc).forEach(System.out::println);
/* 결과 */
User(name=정씨, age=22)
User(name=이씨, age=19)
User(name=김씨, age=25)
User(name=김씨, age=16)
User(name=김씨, age=33)
/* 이름 오름차순, 이름 같을 경우 나이 오름차순 */
Comparator<User> nameDescAndAgeDesc = Comparator.comparing(User::getName).thenComparing(User::getAge);
users.stream().sorted(nameDescAndAgeDesc).forEach(System.out::println);
/* 결과 */
User(name=김씨, age=16)
User(name=김씨, age=25)
User(name=김씨, age=33)
User(name=이씨, age=19)
User(name=정씨, age=22)
/* 이름 오름차순, 이름 같을 경우 나이 내림차순 */
Comparator<User> nameDescAndAgeAsc = Comparator.comparing(User::getName).thenComparing(User::getAge, Comparator.reverseOrder());
users.stream().sorted(nameDescAndAgeAsc).forEach(System.out::println);
/* 결과 */
User(name=김씨, age=33)
User(name=김씨, age=25)
User(name=김씨, age=16)
User(name=이씨, age=19)
User(name=정씨, age=22)
'Java' 카테고리의 다른 글
무작위 문자열, 바이트 배열 생성 (0) | 2024.07.22 |
---|---|
Lombok @Builder 사용 시 MapStruct @AfterMapping 동작 이슈 (0) | 2024.03.15 |
Sub Bytes To String (0) | 2024.02.14 |
[JWT] Auth0을 활용한 JWT 생성 및 확인 (0) | 2023.04.10 |
[Java] Class에서 파일 읽어오기 (tomcat, wildfly) (0) | 2023.02.02 |
Comments