From dad067938edd2175cdb90a7ad7b5f58c0e19d2d9 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 10 Jun 2024 14:53:00 +0100 Subject: Use lazy iterables instead of streams --- .../org/zwobble/mammoth/internal/docx/Numbering.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java b/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java index 8d29393..764bb87 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/Numbering.java @@ -1,10 +1,11 @@ package org.zwobble.mammoth.internal.docx; import org.zwobble.mammoth.internal.documents.NumberingLevel; +import org.zwobble.mammoth.internal.util.Iterables; +import org.zwobble.mammoth.internal.util.Maps; import java.util.Map; import java.util.Optional; -import java.util.stream.Collectors; import static org.zwobble.mammoth.internal.util.Maps.lookup; import static org.zwobble.mammoth.internal.util.Maps.map; @@ -66,10 +67,16 @@ public class Numbering { Styles styles ) { this.abstractNums = abstractNums; - this.levelsByParagraphStyleId = abstractNums.values().stream() - .flatMap(abstractNum -> abstractNum.levels.values().stream()) - .filter(level -> level.paragraphStyleId.isPresent()) - .collect(Collectors.toMap(level -> level.paragraphStyleId.get(), level -> level)); + this.levelsByParagraphStyleId = Maps.toMapWithKey( + Iterables.lazyFilter( + Iterables.lazyFlatMap( + abstractNums.values(), + abstractNum -> abstractNum.levels.values() + ), + level -> level.paragraphStyleId.isPresent() + ), + level -> level.paragraphStyleId.get() + ); this.nums = nums; this.styles = styles; } -- cgit v1.2.3