From 36b6e629637bc1c5f621cdfb01226c366d9a22ff Mon Sep 17 00:00:00 2001 From: Remus Decea Date: Mon, 13 Nov 2023 11:50:06 +0200 Subject: [PATCH] More streams --- .../main/java/com/gildedrose/GildedRose.java | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index 3c8062bd..a79667c4 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -1,6 +1,7 @@ package com.gildedrose; import java.util.Arrays; +import java.util.stream.Stream; class GildedRose { Item[] items; @@ -8,28 +9,21 @@ class GildedRose { public static String backStagePasses = "Backstage passes to a TAFKAL80ETC concert"; public static String sulfuras = "Sulfuras, Hand of Ragnaros"; public static String agedBrie = "Aged Brie"; - public GildedRose(Item[] items) { this.items = items; } public void updateQuality() { Item[] agingItems = Arrays.stream(items).filter(i -> !i.name.equals(sulfuras)).toArray(Item[]::new); - Item[] bries = Arrays.stream(agingItems).filter(i -> i.name.equals(agedBrie)).toArray(Item[]::new); - Item[] backstagePasses = Arrays.stream(agingItems).filter(i -> i.name.equals(backStagePasses)).toArray(Item[]::new); - Item[] otherItems = Arrays.stream(agingItems).filter(i -> !i.name.equals(backStagePasses) && !i.name.equals(agedBrie)).toArray(Item[]::new); - for (Item item : otherItems) { - item.sellIn = item.sellIn - 1; - changeQualityOfStandardItems(item); - } - for (Item brie : bries) { - brie.sellIn = brie.sellIn - 1; - changeQualityOfBries(brie); - } - for (Item item : backstagePasses) { - item.sellIn = item.sellIn - 1; - changeQualityOfPasses(item); + Stream bries = Arrays.stream(agingItems).filter(i -> i.name.equals(agedBrie)); + Stream backstagePasses = Arrays.stream(agingItems).filter(i -> i.name.equals(backStagePasses)); + Stream standardItems = Arrays.stream(agingItems).filter(i -> !i.name.equals(backStagePasses) && !i.name.equals(agedBrie)); + for (Item item : agingItems) { + item.sellIn--; } + bries.forEach(this::changeQualityOfBries); + backstagePasses.forEach(this::changeQualityOfPasses); + standardItems.forEach(this::changeQualityOfStandardItems); } private void changeQuality(Item item, int factor) {