Java - baza danych

0

Mam do zrobienia takie zadanie. Czy ktoś ma jakieś wskazówki? Za nic nie wiem jak się za to zabrać. ;)
Zaimplementuj klasę DataFrame, która pozwalać będzie na przechowywanie dowolnej ilości danych, dowolnego typu w formacie kolumnowym (analogicznie jak w bazie danych).
Kolumny powinny być przechowywane jako ArrayList
Klasa powinna posiadać metody:
size() – zwracającą ilość wierszy
iloc(int from, int to) – zwracającą nową DataFrame z wierszami z podanego zakresu
get(String colname) – zwracającą kolumnę o podanej nazwie
Nawet najmniejsza podpowiedź jest dla mnie cenna.

1

Tak na szybko i na kolanie: W ArrayList potrzebujesz mieć dane dla kolumny o jakiejś nazwie, która jest Stringiem (wnioskuję po tym, że masz mieć w klasie metodę, która zwraca dane dla kolumny o podanej nazwie w Stringu). Potrzebujesz więc jakiejś Mapy: nazwa kolumny -> zbiór danych dowolnego typu dla kolumny. Ilość wierszy w "bazie" to w zasadzie rozmiar najdłuższej z kolumn.

0

Mam coś takiego:

public class DataFrame {
    String[] nazwyKolumn;
    String[] typy;
    Map<String, ArrayList<>> baza = new HashMap<String, ArrayList<>>();
    public DataFrame(String [] _nazwyKolumn, String[] _typy){
        nazwyKolumn=_nazwyKolumn;
        typy=_typy;
        int i;
        for(i=0; i<nazwyKolumn.length; i++){

        }

    }

}
import java.util.*;
import java.util.ArrayList;
import java.io.;

public class DataFrameProgram {
    public static void main(String[] args){

    }
}

i chyba wypadałoby to jakoś poiterować i wstawić do mapy wartości. Czy ktoś mógłby mi pomóc?

1

W zadaniu nie jest powiedziane, w jaki sposób użytkownik klasy ma dodawać dane do tej "bazy". Więc w sumie, proponowałabym zrobić konstruktor, w którym po prostu podaje się tę HashMapę z zawartością bazy, a jeszcze dodatkowo metodę, która pozwala dodać jedną kolumnę, np. addColumn(String nameOfColumn, ArrayList data);

Przy okazji, cztery sugestie:

  1. W IntelliJ ta linijka: Map<String, ArrayList<>> baza = new HashMap<String, ArrayList<>>(); się świeci, oczekując podania typów dla ArrayListy, jak nie chcesz ich podawać, to wywal te nawiasy trójkątne.
  2. Nazwy metod w zadaniu masz podane po angielsku, klasa nazywa się po angielsku, więc pisz po angielsku.
  3. W Javie według konwencji wszystkie nazwy zmiennych, metod lecą camel case'em z małej litery, bez podkreślników.
  4. Po co Ci ta tablica Stringów 'typy'?
0

Tworzenie nowego obiektu ma wyglądać tak:

DataFrame df = new  DataFrame(new String[]{"kol1","kol2","kol3"}, new String[]{"int","double","MyCustomType"});

1 użytkowników online, w tym zalogowanych: 0, gości: 1