[Homework] Pizza Time - разяснение
Здравейте, нещо не мога да схвана идеята на метода който се изисква в класа Pizza. Какъв лист мап трябва да изготви, при положение, че класа съдържа информацията само за една пица...
Здравейте, нещо не мога да схвана идеята на метода който се изисква в класа Pizza. Какъв лист мап трябва да изготви, при положение, че класа съдържа информацията само за една пица...
Привет,
Доколкото разбирам, идеята е в class Pizza да имаш един :
private static Map<Integer, List<String>> map = new HashMap<>();, който метода трябва да връща.
Този map го пълниш всеки път когато създаваш нова инстанция на класа Pizza, примерно в конструктура:
public Pizza(int group, String name) {
this.group = group;
this.name = name;
//тук добавяш в map новата пица
}
Като цяло задачата си е безмислена единствено да се упражни правенето на клас и методи може би. Не знам дали решението ми е правилно ,аз в класа Pizza имам единствено 1 метод без field и без конструктор (дори може и да си е статик сега като се замисля) и тоя метод връща hashmap като вътре в него е логиката по добавяне на пици.
В main-a единствено подавам на метода на Pizza ( String... params ) и принтирвам след това.
Аз по някаква причина взех само 40 точки и се чудя дали гафа може да е в регекса???
И аз хванах само 40 точки - от последните 2 теста...
И на мен ми даваше само 40 точки, смених Regex-а и се оправиха нещата.
@"(\d+)(\w+)"
Явно името на пицата не се състои само от букви.
(\\d+)(\\S+) или всичко освен space
Според мен се иска да се направи статичен метод, който приема params string[] със слитнатия input (целия). И след като приемем целият input го обработваме в метода докато не върнем сортирания речник. Тоест дори не се прави инстанция на Pizza, само се извиква статичния метод заедно с input-a
Поредната задача, в която ти трябва повече умствен капацитет за да разбереш какво точно се изисква от теб, от колкото за да го напишеш. В крайна сметка, ако погледнем проверките, които правят:
MethodInfo[] methods = typeof(Pizza).GetMethods();
bool containsMethod = methods.Any(m => m.ReturnType.Name.Contains("SortedDictionary"));
if (!containsMethod)
{
throw new Exception();
}
... виждаме, че проверяват само дали имаме метод който да връща SortedDictionary. Останалото е чиста импровизация, който както иска да си го напише. Аз пробвах без да създавам field-ове в класа Pizza дори и пак дава 100/100. Метода ми връща желания резултат, но съм го направил и да принтира директно, защото не виждам смисъл от цялата работа.
Ето кода ми, ако на някой му е интересно друго решение или се чуди защо не му дава 100/100 - https://pastebin.com/K3YQJtUV