From dfd26e8168e41574dfbb9df1515bba35a9aeaa1c Mon Sep 17 00:00:00 2001 From: Gunnar Morling Date: Tue, 2 Jan 2024 20:07:39 +0100 Subject: Evaluating itaske's submission --- .../morling/onebrc/CalculateAverage_patrick.java | 76 ---------------------- 1 file changed, 76 deletions(-) delete mode 100644 src/main/java/dev/morling/onebrc/CalculateAverage_patrick.java (limited to 'src/main/java/dev/morling/onebrc/CalculateAverage_patrick.java') diff --git a/src/main/java/dev/morling/onebrc/CalculateAverage_patrick.java b/src/main/java/dev/morling/onebrc/CalculateAverage_patrick.java deleted file mode 100644 index 298a437..0000000 --- a/src/main/java/dev/morling/onebrc/CalculateAverage_patrick.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2023 The original authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package dev.morling.onebrc; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.AbstractMap; -import java.util.Comparator; -import java.util.Map; -import java.util.concurrent.ConcurrentSkipListMap; -import java.util.stream.Collectors; - -public class CalculateAverage_patrick { - - private static final String FILE = "./measurements.txt"; - - private record Measurement(long count, double sum, double min, double max) { - - Measurement(double value) { - this(1, value, value, value); - } - - - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append(round(min)); - builder.append("/"); - builder.append(round(sum/count)); - builder.append("/"); - builder.append(round(max)); - - return builder.toString(); - } - - private double round(double value) { - return Math.round(value * 10.0) / 10.0; - } - } - - public static void main(String[] args) throws IOException { - - Map resultMap = Files.lines(Path.of(FILE)).parallel() - .map(line -> { - int separatorIndex = line.indexOf(";"); - String key = line.substring(0, separatorIndex); - double value = Double.parseDouble(line.substring(separatorIndex + 1)); - return new AbstractMap.SimpleEntry<>(key, value); - }) - .collect(Collectors.toConcurrentMap( - entry -> entry.getKey(), - entry -> new Measurement(entry.getValue()), - ((measurement1, measurement2) -> new Measurement( - measurement1.count + measurement2.count, - measurement1.sum + measurement2.sum, - Math.min(measurement1.min, measurement2.min), - Math.max(measurement1.max, measurement2.max))))); - - System.out.print( - resultMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).map(Object::toString).collect(Collectors.joining(", ", "{", "}"))); - - } -} -- cgit v1.2.3