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.
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 6 lat
- Postów:72

- Rejestracja:ponad 6 lat
- Ostatnio:prawie 2 lata
- Postów:30
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.
- Rejestracja:ponad 7 lat
- Ostatnio:ponad 6 lat
- Postów:72
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?

- Rejestracja:ponad 6 lat
- Ostatnio:prawie 2 lata
- Postów:30
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:
- 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. - Nazwy metod w zadaniu masz podane po angielsku, klasa nazywa się po angielsku, więc pisz po angielsku.
- W Javie według konwencji wszystkie nazwy zmiennych, metod lecą camel case'em z małej litery, bez podkreślników.
- Po co Ci ta tablica Stringów 'typy'?
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.