Loading...
EvgeniyaL avatar EvgeniyaL 35 Точки

Java Fundamentals Exam 13 March 2016 04. Champions League

Здравейте,

Тръгнах да решавам последната задача от последния изпит и реших да направя клас Team. Ето и кода ми  https://gist.github.com/EvgeniyaL/a67fff07a72220f13499 (моля абстрахирайте се от качеството на кода ми, не съм карала КПК още :) ). Проблема е, че за да я реша така трябва да override-на hashCode() метода(поне така си мисля) на HashSet, а не знам как става това. А ако има по лесен вариант, тоест с HashMap моля ви да споделите :), защото на мен ми хрумва само HashMap<TreeMap<String, Integer>,List<String>>teams.

Благодаря предварително!

Тагове:
1
Java Advanced 25/03/2016 15:07:12
kaloyannikov avatar kaloyannikov 531 Точки

аз я реших с 2 mapa , в единия пази победи , в другия опоненти.

1
25/03/2016 15:16:41
EvgeniyaL avatar EvgeniyaL 35 Точки

Добре супер мерси за идеята, аз нещо съм си осложнила много задачата сама ми се струва :)

 

0
RoYaL avatar RoYaL Trainer 6849 Точки

Ако сложиш за ключ тип данни, към който нямаш достъп, както в случая - дървовидната карта, то ще се задушаваш от големи проблеми свързани с хешкодовете. Няма ли как ключовете да са или твоите обекти (Team, на който можеш да override-неш hashCode) или стрингове?

1
EvgeniyaL avatar EvgeniyaL 35 Точки

Да ако override-на hashCode  в класа ми ще стане и ще ползвам само HashSet в този случай. Проблема е, че не знам как става това :). Ше си се проразровя за информация, че ми е интересно.

1
25/03/2016 15:24:13
RoYaL avatar RoYaL Trainer 6849 Точки

Трябва два обекта с различни данни да не резултират до един и същ хеш. А хешът е 32 битово число. Т.е. трябва да намериш алгоритъм, с който като получиш някакви стрингове и интове например, от тях да получиш такова число, че от друга комбинация на стрингове и интове да не получаваш същото число или поне това да става рядко.

Можеш да използваш хешкода на стринговете директно. Ако ползваш IntelliJ с alt+insert в класа ще ти предложи да имплементираш hashCode() и equals(), като те попита върху кои данни от обекта искаш да се случи това разделение и съответно ще генерира за теб алгоритъм.

1
EvgeniyaL avatar EvgeniyaL 35 Точки

Супер мерси много :) Ще постна резултата като я направя ако, някой му е интересно да я види и така решена.

П.П. ето линк https://gist.github.com/EvgeniyaL/2bcbd90d4ce185dd78ae :) в Judge e на 100%.

0
25/03/2016 18:22:22
StaVykoV avatar StaVykoV 169 Точки

Между другото, виждам, че имаш 100 точки и на Monopoly задачката. Би ли шернала кода си за да го погледна, тъй като аз съм я направил за 90 точки и си нямам идея защо не ми е верен първия тест. Ще се радвам и ако качат тестовете и отговорите в judg-a.

1
enevlogiev avatar enevlogiev 1168 Точки

Изпитът е идентичен с Аdvanced C# - 13 March и тъй като двата езика са доста подобни, няма разлика в тестовете и не се налагаше да се правят решения специално за Java. Aко някой държи, може тези дни да направя въпросните решения, но вече не мога да качвам в judge-a.

0
StaVykoV avatar StaVykoV 169 Точки

Благодаря, на мен ми трябваше само теста за да видя къде ми е грешката. Благодаря !

0
StaVykoV avatar StaVykoV 169 Точки

Oказва се, че в зипа на Monopoly са качени матриалите за първата задача. Случайно имаш ли ги някъде при теб ?

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