Loading...
vaseto_v avatar vaseto_v 50 Точки

Java Fundamentals Exam 28 February 2016 04. Events

Здравейте, решавам изпитни задачи по Java, но все още имам малък проблем със синтаксиса на функционалното програмиране и не мога да си довърша задачата. Ето и кода ми :http://pastebin.com/xjcw0gGY

Не мога да разбера защо като foreach-вам person-ите ми печата не само тези, които са value на конкретния град, ами печата абсолютно всички.  Ще съм благодарен ако някой, който е по - отворен с това stream API да ми даде насоки.

 

Тагове:
0
Java Advanced
RoYaL avatar RoYaL Trainer 6849 Точки

Не мога в момента да пусна програмата в момента, но това, което виждам, че си написал е:

1. Ако в "events" го има този град

1.1. Обходи всичко в events

Струва ми се, че трябва да обходиш само events[града]

0
kaloyannikov avatar kaloyannikov 531 Точки

Мисля , че трябва да направиш 1 вътрешен map Treemap<String,<List<String>> да му вземеш ключа и 1 List<String> в него да foreachvash всеки member.

Това е моето решение , ако искаш да погледнеш.

Попринцип регекса ми тука е грешен ,   след питане във форума го коригирах .

0
26/03/2016 19:10:12
MapuH avatar MapuH 35 Точки

А кога се публикуват тестовете? Опитах доста неща да променя, но 4-ти и 5-ти тест никога не минават (Incorrect answer). Предполагам, че е заради списъка с часовете и/или тяхното сортиране. Сега като видях решението на Калоян си промених regex-a и начина, по който се валидира времето, но резултатът е същия.

До тук я докарах http://pastebin.com/B8R0ME06 (Java 7)

Първоначалният ми regex беше

(#[a-zA-Z]+:)\\s*(@[a-zA-Z]+)\\s*((?:[01]?\\d|2[0-3]):[0-5]\\d)

и без никакви допълнителни проверки, т.е. за валидиране се разчита изцяло на pattern-a. Не съм сигурен дали е приложимо.

1
26/03/2016 22:25:32
kaloyannikov avatar kaloyannikov 531 Точки

пробвай с ^ oтпред и $ отзад на регекса, щото иначе хваща ненужни неща. Аз написах че тоя код който дадох регекса ми там е неправилен .

2
MapuH avatar MapuH 35 Точки

Точно това беше, 100/100, благодаря

0
AntonPortenov avatar AntonPortenov 102 Точки

Тоя регекс ме спаси, че иначе бях забил на 70 :)

 

0
MapuH avatar MapuH 35 Точки

Все пак да напиша отговор на vaseto_v, защото малко му се намесих в темата.

След като провериш дали place го има в events, трябва да обходиш events.get(place).entrySet(), т.е. Map-a вътре в Map-a events.

Също така events няма нужда да е TreeMap, защото сортираш масива places и той ти е изходната точка за output-a. Затова events може да си е най-обикновен HashMap.

0
vaseto_v avatar vaseto_v 50 Точки

Благодаря на всички отзовали се!

Докарах ги до 100 точки.  Преди това много тъпо се бях омотал в това принтиране и обхождане на отделните колеции :)

0
StaVykoV avatar StaVykoV 169 Точки

Добре де, само на мен ли TreeSet ми сортира TriFon trifoN trifon по този начин вместо обратно ?

 

0
MapuH avatar MapuH 35 Точки

Защо мислиш, че трябва да е обратно? Погледни в ASCII таблицата къде се намират главните букви и къде малките.

0
StaVykoV avatar StaVykoV 169 Точки

Съгласен, но на примерните кодове без да виждам допълнителни нагласяния, ги сортира така както се иска на изхода - trifon trifoN TriFon

п.с. Така се иска на изхода на един тестовете в джъджа.

0
27/03/2016 17:59:25
MapuH avatar MapuH 35 Точки

Бъркаш се, колега, примерният output, който е даден в задачата е

Plovdiv:
1. TriFon -> 22:00
2. trifoN -> 23:00
3. trifon -> 23:00

което си е точно подреждането след нормално сортиране в Java.

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