Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Pytanie dla programistów Java

18.01.2018 09:17
dexapini9
1
dexapini9
116
veritas odium parit

Pytanie dla programistów Java

Szukam tego trochę i znalazłem mało informacji, więc wolę się Was zapytać:

jak się deklaruje i inicjalizuje kolekcję w Javie?

Z góry dzięki.

18.01.2018 10:06
2
odpowiedz
JonsonJonson
101
Generał

W jaki sposób tego szukałeś, że nie udało Ci się znaleźć?

https://www.google.pl/search?q=initialize+collection+java

18.01.2018 10:12
dexapini9
3
odpowiedz
dexapini9
116
veritas odium parit

ehh szukałem w artykułach na blogach programistycznych a nie wpadłem na pomysł, by wejść na stack overflow. Dzięki.

18.01.2018 10:56
Amadeusz ^^
4
odpowiedz
3 odpowiedzi
Amadeusz ^^
200
of the Abyss

Kolekcja to bardzo ogólne określenie - może się odnosić do list, map, setów - a podkategorii jest od groma.

Najprostszy przykład to np. Lista:

(uwaga - w javie starszej niż SE7 trzeba deklarować generyka także w drugiej klamrze <>)
List<String> myList = new ArrayList<>();

Dobrą praktyką jest deklaracja interfejsu a nie konkretnej implementacji (myList to przed utworzeniem instancji List więc może przyjąć formę dowolnej implementacji, gdyby od razu ustawić to na ArrayList nie masz tego flexibility)

Jako typy podajemy opakowane obiekty, a nie prymitywy (np. Integer, a nie int)
No i później już obrabiasz, np:
myList.add("test");

Nie zapomnij o importach (importujemy z util, nie z awt).

Generalnie to podstawy podstaw, polecam zerknąć https://docs.oracle.com/javase/tutorial/collections/ zanim zaczniesz coś pisać i na ślepo przeklejać ze stackoverflow nie wiedząc tak naprawdę co się dzieje.

18.01.2018 12:19
dexapini9
4.1
dexapini9
116
veritas odium parit

Dzięki :) Napisałeś więcej niż nawet trzeba :) Chodzi o to, że jutro mam test i podobno będzie takie pytanie (ogólnie o Kolekcjach - nie.o wybranym typie np. kolejce). Ogólnie mam problem, bo po prostu jestem trochę z tyłu i uczę się pewnych pojęć, a na tę chwilę nie potrafię tego zaimplementować w działającej aplikacji.

Co ciekawe, prosiłem o pomoc kolegę, który od niedawna pracuje jako programista Java oraz C++ i właściwie to nie januszsoft bo kasę dostaję z tej górnej półki jak na juniora a nie ogarnia tego tematu, bo nie używał w ogóle kolekcji w Javie. Więcej języki skryptowe i C++, no ale chyba junior powinien nawet teoretycznie takie rzeczy wiedzieć. No nic, obczaję dokumentację.

18.01.2018 13:00
Mageage
4.2
Mageage
65
Pretorianin

Ciężko uwierzyć, że ktoś pracuje jako junior java dev i nie zna kolekcji.

18.01.2018 13:01
Amadeusz ^^
4.3
Amadeusz ^^
200
of the Abyss

No to tak jak napisałem wyżej.

Deklaracja jest po lewej stronie równania, inicjalizacja zaś po prawej stronie (obok członu "new", to po prostu tworzenie instacji obiektu). Istnieje też wzorzec zwany lazy initialization:
(najpierw deklaracja)

List<Integer> exampleList;

(... i gdzieś tam dalej w kodzie)

exampleList = new LinkedList<>();

Forum: Pytanie dla programistów Java