Loading...
Vl.Metodiev avatar Vl.Metodiev 54 Точки

Здравей

 

Ето едно примерно решение:

 

https://pastebin.com/g7iYPsTC

 

Докато получа командата END, получавам командни редове - String[] commands; сплитнати по следният начин "\\-\\>". След което правя следното нещо:

 

command = commands[0];
shop = commands[1];
if(command.equals("Add")){
    current = commands[2];
    items = Arrays.stream(current.split(",")).collect(Collectors.toList());
}

 

Конструкцията if е нужна, защото получавам артикули само при command = "Add", но не и при "Remove". След което в switch - конструкцията в case "Add" проверявам дали в дневника има ключ с названието на съответния магазин. Ако няма го добавям, след което използвам for - цикъл за да взема стойностите от списъка items. В case "Remove": премахвам съответния ключ ако съществува.

Сортирам магазините от дневника по следния начин:

 

System.out.println("Stores list:");

        diary
                .entrySet()
                .stream()
                .sorted(Map.Entry.<String, ArrayList<String>>comparingByValue(Comparator.comparing(ArrayList::size)).thenComparing(Map.Entry.comparingByKey()).reversed())
                .forEach(element -> {
                    System.out.println(element.getKey());
                    element
                            .getValue()
                            .stream()
                            .forEach(store -> System.out.printf("<<%s>>%n", store));
                });

 

Първо ги сортирам според това колко артикула ще бъдат взети от дадения магазин, а след това, ако има два магазина с еднакъв брой артикули, по име. След което ги принтирам.

 

Успех!

0
08/12/2019 20:05:45
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.