JDK 1.8 Lambda 표현식 집합
2734 단어 성능
@Data
public class User {
private String userId;
private String username;
private String nickName;
private String password;
private String picPath;
private String status;
private String sessionId;
private Date createTime;
private Date updateTime;
private int age;
private BigDecimal memberNum;
@Override
public String toString() {
return "User [userId=" + userId + ", username=" + username
+ ", nickName=" + nickName + ", password=" + password
+ ", picPath=" + picPath + ", status=" + status
+ ", sessionId=" + sessionId + ", createTime=" + createTime
+ ", updateTime=" + updateTime + ", age=" + age + "]";
}
}
위의 객체를 작성하는 경우(List userList는 비어 있지 않음):
1. 지정된 필드를 통해 Collectors를 그룹화합니다.groupingBy().
Map> groupByStatus = userList.stream().collect(Collectors.groupingBy(User::getStatus));
for (Map.Entry> entry : groupByStatus.entrySet()) { String status = entry.getKey(); List userList = entry.getValue();
}
2、조건을 통해 필터 필터().
List userListByStatus = userList.stream().filter(t -> t.getStatus().equals("100")).collect(Collectors.toList());
3、list의 한 필드를 가져와서 새 list를 조립합니다.
List userIdList = userList.stream().map(t -> t.getUserId()).collect(Collectors.toList());
4、distinct를 다시 제거합니다().
List userIdList = userList.stream().distinct().collect(Collectors.toList());
5, 단일 필드 다중 필드 정렬sort().
userList.sort(Comparator.comparing(User::getUserId));
userList.sort(Comparator.comparing(User::getUserId).thenComparing(User::getStatus));
{
참고: 정렬 필드를null값으로 선택하면 정렬은userList.sort(Comparator.comparing(User::getUserId,Comparator.nullsFirst(Comparator.naturalOrder())))
}
6,list 회전맵.
Map userMap = userList.stream().collect(Collectors.toMap(User::getUserId, t -> t,(k1,k2)->k1));
(그 중에서 집합 대상 키가 무거우면 (k1,k2)->k1에 따라 설정할 수 있습니다.)
7. 화해를 구한다
기본 유형: int sumAge = userList.stream().mapToInt(User::getAge).sum();
기타: BigDecimal totalMembernum = userList.stream().map(User::getMemberNum).reduce(BigDecimal.ZERO, BigDecimal::add);
(여기서 bigDecimal 객체가 null이면 Filter()가 빈 포인터를 필터링합니다.)
8. 가장
Date minDate = userList.stream().map(User::getCreateTime).min(Date::compareTo).get();
Date maxDate = userList.stream().map(User::getCreateTime).max(Date::compareTo).get();
User maxUp = userList.stream().max(Comparator.comparingInt(User::getAge)).get();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 앱의 성능 개선②(RecyclerView.Adapter)이 기사에서는 Android 앱의 성능을 향상시키는 방법에 대해 설명합니다. 개선 대상 목록 등을 보려면 RecyclerView를 사용할 수 있다고 생각합니다. RecyclerView는 매우 유용한 클래스이지만 성능...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.