Wpis z mikrobloga

Siema Mirki, mam pytanie.

Mam plik z danymi w formacie:

WODA,20130102,5.26
COLA,20130102,4.63
PEPSI,20130102,2.16
COLA,20130103,7.35
WODA,20130103,9.55

I chcę to wczytać w Javie do jakiejś kolekcji. Mój pomysł jest taki, że robię klasę Produkt.java, gdzie definiuję dwa parametry, nazwę produktu oraz jego cenę. Następnie robię mapę gdzie kluczem będzie data, a wartością lista produktów. Czy to jest w ogóle prawidłowe podejście przy korzystaniu z map czy źle kombinuję i powinienem użyć czegoś innego? Zależy mi na osiągnięciu powiązania pojedynczej daty z kilkoma produktami wraz z ceną.

#java
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Qbaz: Potrzebujesz Multimapy, bo widzę, że data nie jest unikalna, zatem w zwykłej mapie nie będzie to działać.

A czy podejście poprawne? No cóż, zależy, co chcesz osiągnąć.
  • Odpowiedz
@Qbaz: Nie wiem, ale się wypowiem. W AutoIT wyświetlane dane są zależne od tego, jaki jest algorytm. Jeżeli spełnisz warunek prawidłowo uzyskasz oczekiwany efekt. W javie jest podobnie. :D
  • Odpowiedz
@Detharon: Nie muszę koniecznie używać mapy. Pełna dowolność. Po prostu pomyślałem, że tak będzie najlepiej, żeby potem móc pobrać sobie listę produktów wraz z cenami z konkretnego dnia po kluczu jakim będzie data.
  • Odpowiedz
Po prostu pomyślałem, że tak będzie najlepiej, żeby potem móc pobrać sobie listę produktów wraz z cenami z konkretnego dnia po kluczu jakim będzie data.


@Qbaz: Możesz tak zrobić.
  • Odpowiedz
@Detharon: @kisi3l: Zrobiłem to za pomocą LinkedHashMap i podziałało. Dane w pliku są w kolejności, dlatego skorzystałem z LinkedHashMap, żeby mieć mapę posortowaną według tego jak jest to w pliku.
  • Odpowiedz
@kisi3l: Podglądam w debugerze wartości i z tego co widzę, to działa. Teraz piszę testy, więc zaraz wezmę jakiś losowy dzień z pliku i sprawdzę czy się zgadza z tym co znajduje się z mojej mapie.
  • Odpowiedz
@kisi3l: Wychodzi na to, że działa. Stworzyłem ręcznie listę produktów wraz z ich cenami, a następnie w teście pobrałem po kluczu listę z mojej mapy i dane się zgadzają.

A cały proces tworzenia mapy z tych danych polega:

List productList = productMap.get(data[1]);
if (null
  • Odpowiedz