list.stream().map().collect()の意味
list.stream().map().collect()の意味
起因:最近他の人のソースコードを勉強していますが、登録検証権限の時にこのようなコードを見ました。
起因:最近他の人のソースコードを勉強していますが、登録検証権限の時にこのようなコードを見ました。
List<Role> roles = roleDao.selectByUserId(user.getId());
List<Long> roleIds = roles.stream()
.map(Role::getId)
.collect(Collectors.toList());
バカな私はこれが1.8の新しい特性だと知っていますが、接触したことがないので、どういう意味なのか分かりません。検索したらここで記録してみます。上のコードを私達が熟知しているコードに変えたらこのように長いです。List<Role> roles = roleDao.selectByUserId(user.getId());
List<Long> roleIds = new ArrayList<>();
for (Role role : roles) {
roleIds.add(role.getId());
}
いくつか資料を調べたら、java 8 appiの方法で別の書き方があります。List<Role> roles = roleDao.selectByUserId(user.getId());
List<Long> roleIds = roles.stream()
.map(role -> role.getId())
.collect(Collectors.toList());