Skip to content

Commit 9bd32d4

Browse files
committed
AoC 2017 Day 20 - java - smaller
1 parent daef1e8 commit 9bd32d4

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

src/main/java/AoC2017_20.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
import static java.util.stream.Collectors.groupingBy;
22
import static java.util.stream.Collectors.toList;
3-
import static java.util.stream.Collectors.toSet;
43

54
import java.util.ArrayList;
65
import java.util.Comparator;
76
import java.util.List;
87
import java.util.Map;
9-
import java.util.Map.Entry;
10-
import java.util.Set;
118
import java.util.regex.Matcher;
129
import java.util.regex.Pattern;
1310
import java.util.stream.Collector;
@@ -69,20 +66,17 @@ public Integer solvePart1() {
6966

7067
@Override
7168
public Integer solvePart2() {
72-
Map<Position3D, List<Particle>> map
73-
= this.buffer.stream().collect(Particle.groupingByPosition());
69+
List<Particle> b = new ArrayList<>(this.buffer);
7470
for (int i = 0; i < TICKS; i++) {
75-
map = map.values().stream()
76-
.flatMap(List::stream)
71+
b = b.stream()
7772
.map(Particle::next)
78-
.collect(Particle.groupingByPosition());
79-
final Set<Position3D> collisions = map.entrySet().stream()
80-
.filter(e -> e.getValue().size() > 1)
81-
.map(Entry::getKey)
82-
.collect(toSet());
83-
collisions.forEach(map::remove);
73+
.collect(Particle.groupingByPosition())
74+
.values().stream()
75+
.filter(v -> v.size() == 1)
76+
.flatMap(List::stream)
77+
.collect(toList());
8478
}
85-
return map.size();
79+
return b.size();
8680
}
8781

8882
public static void main(final String[] args) throws Exception {

0 commit comments

Comments
 (0)