は、ここで私は、私はストリームとして、いくつかのpersons
を処理し、Iのようストリームが処理した要素の数を数えるには?
@Test
public void testPersonStreamToFile() throws Exception {
Person person1 = new Person(Collections.singletonList("key1"), Collections.singletonMap("person1", "key1"));
Person person2 = new Person(Collections.singletonList("key2"), Collections.singletonMap("person2", "key2"));
File file = temporaryFolder.newFile("personStream.txt");
System.out.println(file.toString());
List<Person> persons = Arrays.asList(person1, person2);
Stream<String> personStream = persons
.stream()
.map(WorkflowTest::mapToJsonString);
Files.write(Paths.get(file.toURI()), (Iterable<String>) personStream::iterator);
System.out.println("Done");
}
ようJSON
に必要な をそれらを変換
class Person {
List<String> keys;
Map<String, String> attributes;
public Person(List<String> keys, Map<String, String> attributes) {
this.keys = keys;
this.attributes = attributes;
}
public List<String> getKeys() {
return keys;
}
public Map<String, String> getAttributes() {
return attributes;
}
}
のように見える
Person
クラスを持っている私の例
ですストリームを処理し、私はプログラムhoの終わりまで私に言うCounter
を保ちたい多くのpersons
はJSON
に変換されました。
どうすればStreams
でこれを達成できますか?
カウンタを保持するために使用できる 'peek'メソッドがあります。 – mszymborski
これはすべての単一の要素(いくつかの要素を除外する条件はありません)に起こる場合、 'stream'はその中の要素を返す' count() '関数を持っています。 –
または、JSON変換メソッド内のいくつかのカウンタをインクリメントすることができます。 – shmosel