ΠΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΡΠΎ Π΄Π΅Π»Π°Ρ Π½Π΅ ΡΠ°ΠΊ. ΠΡΡΠΊΠ°ΠΊΠΈΠ²Π°Π΅Ρ ΠΊΡΡΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
package com.javarush.task.pro.task14.task1413;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.Collectors;
/*
ΠΠΎΠ½Π³ Π΄ΡΠΈΠ½ΠΊ
*/
public class Solution {
public static void main(String[] args) {
Map<String, Integer> screwdriverIngredients = makeScrewdriver();
String screwdriver = screwdriverIngredients.keySet().stream()
.map(key -> key + "=" + screwdriverIngredients.get(key))
.collect(Collectors.joining(", ", "{", "}"));
System.out.println(screwdriver);
}
static Map<String, Integer> makeScrewdriver() {
Map<String, Integer> ingredients = new TreeMap<>();
addIce(ingredients);
addVodka(ingredients);
addJuice(ingredients);
addOrange(ingredients);
return ingredients;
}
static void addIce(Map<String, Integer> ingredients) {
try {
ingredients.put("ice cubes", 7);
} catch (NullPointerException e) {
printBugMethodName(Thread.currentThread().getStackTrace());
}
}
static void addVodka(Map<String, Integer> ingredients) {
try {
ingredients.put("vodka", 50);
} catch (NullPointerException e) {
printBugMethodName(Thread.currentThread().getStackTrace());
}
}
static void addJuice(Map<String, Integer> ingredients) {
try {
ingredients.put(null, 100);
} catch (NullPointerException e) {
printBugMethodName(Thread.currentThread().getStackTrace());
}
}
static void addOrange(Map<String, Integer> ingredients) {
ingredients.put("orange slice", 1);
try {
ingredients.put(null, 100);
} catch (NullPointerException e) {
printBugMethodName(Thread.currentThread().getStackTrace());
}
}
public static void printBugMethodName(StackTraceElement[] stackTraceElements) {
printBugMethodName(Thread.currentThread().getStackTrace());
}
}