File tree 1 file changed +8
-14
lines changed
1 file changed +8
-14
lines changed Original file line number Diff line number Diff line change 1
1
import static java .util .stream .Collectors .groupingBy ;
2
2
import static java .util .stream .Collectors .toList ;
3
- import static java .util .stream .Collectors .toSet ;
4
3
5
4
import java .util .ArrayList ;
6
5
import java .util .Comparator ;
7
6
import java .util .List ;
8
7
import java .util .Map ;
9
- import java .util .Map .Entry ;
10
- import java .util .Set ;
11
8
import java .util .regex .Matcher ;
12
9
import java .util .regex .Pattern ;
13
10
import java .util .stream .Collector ;
@@ -69,20 +66,17 @@ public Integer solvePart1() {
69
66
70
67
@ Override
71
68
public Integer solvePart2 () {
72
- Map <Position3D , List <Particle >> map
73
- = this .buffer .stream ().collect (Particle .groupingByPosition ());
69
+ List <Particle > b = new ArrayList <>(this .buffer );
74
70
for (int i = 0 ; i < TICKS ; i ++) {
75
- map = map .values ().stream ()
76
- .flatMap (List ::stream )
71
+ b = b .stream ()
77
72
.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 ());
84
78
}
85
- return map .size ();
79
+ return b .size ();
86
80
}
87
81
88
82
public static void main (final String [] args ) throws Exception {
You can’t perform that action at this time.
0 commit comments