• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmienne ( tablice, Stringi itp) - jak przechowywać?

Cloud VPS
0 głosów
1,432 wizyt
pytanie zadane 29 sierpnia 2016 w Java przez kaminki Obywatel (1,030 p.)
Jestem w trakcie planowania architektury do programu obliczeniowego związanego z budownictwem (na studia). Do obliczeń będę potrzebował stworzyć troszkę tabel z wartościami liczbowymi i tekstowymi oraz inne pojedyncze wartości stałe. I tu pytanie czy stworzyć klasę w której będę przechowywał tylko te wartości stałe i nic więcej a następnie będą pobierane stąd do obiektu, poprzez konstruktor, do innej klasy zawierającej już tylko konkretne dane do obliczeń? Czy jest jakiś inny ciekawszy i lepszy sposób?

1 odpowiedź

+1 głos
odpowiedź 29 sierpnia 2016 przez MichuDev Pasjonat (20,300 p.)
wybrane 29 sierpnia 2016 przez kaminki
 
Najlepsza

Możesz użyć publicznych finalnych zmiennych (stałych):

public class Constances {

   public static final int PEWNA_LICZBA_DO_OBLICZEN = 16;
   public static final String PEWNY_NAPIS_DO_OBLICZEN = "Java";
   //...

}

Lub typu obliczeniowego też do przechowywania stałych (moim zdaniem lepszy pomysł):

public enum Constances {
  

   A(1,"ABC"),B,C(100,"XYZ");
   
   int a;
   String b;
   
   Constances(int a,String b){
      this.a = a;
      this.b = b;
   }

   Constances(){
      a = 0;
      b = "JVM";
   }
   
   public String getB(){
     return b;
   }
   
   public int getA(){
     return a;
   }

}

Jeśli chodzi o przechowywanie danych w dużych ilościach, masz do wyboru:

  • użycie bazy danych (SQL / NoSQL).
  • użycie plików (JSON,XML, CONF, INI, YAML).
  • użycie frameworku Collections w języku Java (wbudowany w język), dostępny w pakiecie java.util.

Co wybrać:

  • Duża skala i ilość danych: Baza Danych.
  • Szybki dostęp do danych w pamięci RAM - Framework Collections.
  • Aplikacja, która działa niezależnie na wielu urządzeniach i musi zapisywać dane w niewielkich ilościach - pliki.
  • Mała ilość stałych obliczeniowych, dostępnych bardzo szybko - typy wyliczeniowe, ewentualnie stałe wewnątrz klasy. 

Masz jakieś pytania, chętnie odpowiem, pisz w komentarzach pod tą odpowiedzią. 

komentarz 29 sierpnia 2016 przez kaminki Obywatel (1,030 p.)

Czy mogę dodać do enum taką tabelę ?

Dane będę pobierał na podstawie klucza np. "B15" i zwracać będzie tablicę z wartościami w takiej kolejności jak w kolumnie są. Później, w obliczeniach, będę odwoływał się w taki sposób tab[i]. I myślę że każdą kolumnę czyli klasę betonu zamieścić w HashMap z kluczem o nazwie klasy i dopisana tablicą jednowymiarową. I tu pytanie jak to ugryźć w enum?

komentarz 29 sierpnia 2016 przez MichuDev Pasjonat (20,300 p.)

Możesz to zrobić. Wszystko co jest nazwą w tabeli możesz skrócić lub użyć Mapy. Typ enum ma takie same możliwości co klasa tylko konstruktor jest bez modyfikatora dostępu, oraz nie trzeba go tworzyć. Odwołujesz się do tego:

Beton.B15; // Beton - nazwa enum, B15 klasa betonu.

 

Podobne pytania

0 głosów
0 odpowiedzi 143 wizyt
pytanie zadane 27 stycznia 2017 w C i C++ przez klap Początkujący (410 p.)
0 głosów
1 odpowiedź 660 wizyt
pytanie zadane 24 stycznia 2017 w C i C++ przez mel0n Początkujący (400 p.)

93,456 zapytań

142,451 odpowiedzi

322,721 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...