java gold se8 の勉強をしているのですが、パラレル処理での、
toConcurrentMap()メソッドについてのサンプルコードでわからないところがあるので教えていただけないでしょうか。
下に記載したコードの、19行目の 「s -> s」が分かりません。これはどういう処理をしているのでしょうか。
[samplecode.java]
1 import java.util.;
2 import java.util.stream.;
3
4 public class Sample10_29 {
5 public static void main(String[] args) {
6 Stream<String> stream1 =
7 Stream.of("belle", "akko", "ami", "bob", "nao").parallel();
8 Map<String, List<String>> map1=
9 stream1.collect(Collectors.groupingByConcurrent(
10 s -> s.substring(0, 1)));
11 System.out.println(map1);
12 System.out.println("map1のクラス名 :" + map1.getClass());
13
14 Stream<String> stream2 =
15 Stream.of("nao", "akko", "ami").parallel();
16 Map<Integer, String> map2 =
17 stream2.collect(Collectors.toConcurrentMap(
18 String::length,
19 s -> s,
20 (s1, s2) -> s1 + " : " + s2));
21 System.out.println(map2);
22 System.out.println("map2のクラス名 :" + map2.getClass());
23 }
24 }
[実行結果]
{a=[ami,akko], b=[bob,belle], n=[nao]}
map1のクラス名 :class java.util.concurrent.ConcurrentHashMap
{3=nao : ami, 4=akko}
map2のクラス名 :class java.util.concurrent.ConcurrentHashMap
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。