Wpis z mikrobloga

Jak w javie przechowywac liste elementow z kilkoma atrybutami? Myslalem o HashMapie z drugim elementem jako ArrayLista, ale zauwazylem, ze pozniejszy dostep do poszczegolnych elementow jest troche niewygodny

#programowanie #java
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak w javie przechowywac liste elementow z kilkoma atrybutami?


@przepyszna_frytka: Proponuje stworzyć klasę Element z kilkoma atrybutami. Następnie umieścić to na liście.
Będziesz miał wtedy listę Elementów z kilkoma atrybutami.
Mam nadzieję, że pomogłem
  • Odpowiedz
@przepyszna_frytka: To zależy, jakie dane chcesz tak przechowywać? Co jest kluczami w tej twojej hash-mapie?
Co to za atrybuty? Ma to być jakaś stała struktura, czy elastyczna, gdzie masz dowolną nazwę i wartość atrybutu?
Tak czy inaczej, zamiast klas w Javie, jak sugerują inni użyłbym protocol-bufferów. Wtedy możesz łatwiej ich używać w kodzie w innych językach, i budować sobie wygodniej różne pipeline'y, gdzie te obiekty gdzieś wysyłasz, zapisujesz, odczytujesz z
  • Odpowiedz
@baranek1: jezu, protobufów używa się do komunikacji z innymi aplikacjami. Używanie tego w jednej aplikacji to rak z wielu powodów: wydajność, czytelność, czy też łatwość modyfikacji. Jak można wpaść na taki pomysł ()
  • Odpowiedz
@63274682374: @Saly: @Eoghan: @baranek1: musze miec klase Cennik, ktora przechowuje nazwe kwiatka (srtring) i 2 lub 3 wartosci (double) - pozniej do jakiejs kolekcji sa zapisywane obiekty klas kwiatkow, ktore dziedzicza po abstrakcyjnej klasie Kwiatek - z tego cennika musze pobierac ceny, zeby moc okreslic ile np uzytkownik musi zaplacic za 5 tulipanow
  • Odpowiedz
@Saly: Nawet nie wiemy co to za aplikacja, którą pisze OP. Jednak większość software'u który się obecnie pisze, komunikuje się z innymi aplikacjami.
  • Odpowiedz
@baranek1: tak, ale struktury danych odpowiedzialne za komunikację z innymi serwisami (czyli np. protobufy) to mały promil struktur, które są używane wewnątrz aplikacji do realizowania logiki biznesowej. Zwłaszcza, że protobufy nie nadają się do wielu zastosowań "wewnątrz aplikacyjnch". Przykładowo wszystkie pola są opcjonalne: jest to dobre w komunikacji między serwisami, gdyż rozluźnia kontrakt. W przypadku normalnych aplikacji trzeba robić if-y przy każdym pobraniu wartości
  • Odpowiedz
@przepyszna_frytka: dziwny desing. Sam fakt instnienia klasy bazowej Kwiat i potomnych np. Tulipan jest słaby, bo tworzysz dziedziczenie na siłę. Bo tak na chłopski rozum: jaką funkcjonalnością różni się Tulipan od Róży? W tym wypadku wystarczyłaby jedna klasa kwiat, która posiadałaby pola nazwa i te odpowiedzialne za cenę
  • Odpowiedz
@Saly: no jasne, ale o właśnie takie zastosowanie mi chodziło (serializacja / komunikacja z innymi serwisami). Bez przesady, że to tylko promil takich struktur. Jak masz strukturę bez żadnych metod, której zadaniem jest tylko przechowywanie pewnych danych, to z mojego doświadczenia w 90% przypadków te dane będą gdzieś serializowane i wysłane do innej aplikacji, albo do innego modułu będącego częścią większego systemu, nad którym pracujesz.
Jeśli chodzi o "wydajność, czytelność,
  • Odpowiedz