Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class AnonymousCache {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String input = scanner.nextLine();
- Map<String, List<String>> sets = new LinkedHashMap<>();
- Map<String, Long> sizes = new HashMap<>();
- Map<String, List<String>> cacheSets = new LinkedHashMap<>();
- Map<String, Long> cashSizes = new HashMap<>();
- while (!input.equals("thetinggoesskrra")) {
- if (!input.contains("-")) {
- String dataSet = input;
- if (!sets.containsKey(dataSet)) {
- if (!cacheSets.containsKey(dataSet)) {
- sets.put(dataSet, new ArrayList<>());
- sizes.put(dataSet, 0L);
- } else {
- sets.put(dataSet, cacheSets.get(dataSet));
- sizes.put(dataSet, cashSizes.get(dataSet));
- cacheSets.remove(dataSet);
- cashSizes.remove(dataSet);
- }
- }
- } else {
- String[] tokens = input.split(" -> ");
- String dataKey = tokens[0];
- String[] tokens2 = tokens[1].split(" \\| ");
- long dataSize = Long.parseLong(tokens2[0]);
- String dataSet = tokens2[1];
- if (!sets.containsKey(dataSet)) {
- if (!cacheSets.containsKey(dataSet)) {
- cacheSets.put(dataSet, new ArrayList<>());
- cacheSets.get(dataSet).add(dataKey);
- cashSizes.put(dataSet, dataSize);
- } else {
- cacheSets.get(dataSet).add(dataKey);
- cacheSets.put(dataSet, cacheSets.get(dataSet));
- cashSizes.put(dataSet, cashSizes.get(dataSet) + dataSize);
- }
- } else {
- sets.get(dataSet).add(dataKey);
- sets.put(dataSet, sets.get(dataSet));
- sizes.put(dataSet, sizes.get(dataSet) + dataSize);
- }
- }
- input = scanner.nextLine();
- }
- if (!sets.isEmpty()) {
- sizes.entrySet()
- .stream()
- .sorted((f, s) -> {
- long result = s.getValue() - f.getValue();
- return (int) result;
- })
- .limit(1)
- .forEach(e -> {
- System.out.printf("Data Set: %s, Total Size: %d%n",
- e.getKey(), e.getValue());
- for (String dataKey : sets.get(e.getKey())) {
- System.out.printf("$.%s%n", dataKey);
- }
- });
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment