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

Arraylist przypisywanie

0 głosów
1,240 wizyt
pytanie zadane 5 marca 2016 w Java przez Mar Cin Dyskutant (8,900 p.)
	ArrayList lista=new ArrayList(6);

	
	for(int i=0; i<tablica.length; i++){
		
		if(tablica[i]>=a && tablica[i]<b){
			
			lista.add(i, tablica);
			System.out.println(lista.get(i));
	
		}

Cześć,coś niestety robię nie tak i nie mogę dodać żadnego elementu do listy.Proszę o pomoc:)

3 odpowiedzi

0 głosów
odpowiedź 5 marca 2016 przez Sareley Gaduła (4,740 p.)
wybrane 5 marca 2016 przez Mar Cin
 
Najlepsza

Problem jest w tej linijce:

lista.add(i, tablica);

Zamień ją na:

lista.add(i, tablica[i]);

Zwróć uwagę co wykonujesz w kodzie.

korzystasz z metody:

add(int index, Object object)

dodajesz do listy za każdym przejściem pętli na podanym indexie aktualny obiekt tablicy. Dzieje się tak dlatego że używasz niegenerycznej kolekcji.

Zamiast tego skorzystaj z generycznej wersji takiej kolekcji. Druga sprawa to to, że deklarowanie wielkości listy jest trochę bez sensu, listy są fajne właśnie dlatego że dynamicznie zwiększają swoją wielkość. Zobacz przykładowe użycie generycznej wersji tej samej listy.

// deklaracja
ArrayList<String> lista = new ArrayList<>();

// użycie w pętli
lista.add(tablica[i])

 

+1 głos
odpowiedź 5 marca 2016 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)

Przecież 

ArrayList

jest typem generycznym i powineneś mieć określone co do tej listy wsadzasz np 

ArrayList<String> list = new ArrayList<>();

i do takiej tablicy dodajesz tylko i wyłącznie stringi :)

komentarz 5 marca 2016 przez Porcupine Nałogowiec (31,560 p.)

A tak najlepiej to by było chyba:

List<String> list = new ArrayList<>();

Żeby z polimorfizmu skorzystać :)

komentarz 5 marca 2016 przez Sareley Gaduła (4,740 p.)
Jest również wersja niegeryczna. Dlatego podany kod jest jak najbardziej poprawny ale w tej wersji przesyłany jest do kolekcji Object.
0 głosów
odpowiedź 5 marca 2016 przez Mar Cin Dyskutant (8,900 p.)
Dzięki wielkie Wszystkim za odpowiedź!

Podobne pytania

0 głosów
1 odpowiedź 419 wizyt
0 głosów
1 odpowiedź 599 wizyt
pytanie zadane 28 września 2018 w Java przez buczer Nowicjusz (120 p.)
+1 głos
1 odpowiedź 1,429 wizyt
pytanie zadane 23 października 2021 w Java przez DzikieHarce Użytkownik (690 p.)

93,765 zapytań

142,721 odpowiedzi

323,373 komentarzy

63,359 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...