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

Java : Lista referencji do obiektów typu Integear a podmiana wartosci w subliscie

0 głosów
370 wizyt
pytanie zadane 5 grudnia 2019 w Java przez Tomek Orchowski Nowicjusz (140 p.)

Dzień dobry. Jestem początkującym w Javie. Pisząc margesorta irytowałem się że nie działa aż natchnęło mnie żeby sprawdzić czy wartości tak właściwie sie podmieniają.. i tutaj moje zdziwienie... nie.

kod z "zabawy"
 

package zadanie5.sortowanie_1v;

import java.util.ArrayList;
import java.util.Arrays;

public class sortowaniev3
{



    public static void main(String[] args)
    {
        ArrayList<Integer> arrayList = new ArrayList<>(Arrays.asList(new Integer[]{1,2,3,4,5,6,7,8,9,10,11,12}));
        System.out.println(arrayList);
        ArrayList<Integer> arrayListSUBLIST = new ArrayList<>(arrayList.subList(0,arrayList.size()/2));

        for(Integer i:arrayListSUBLIST)
        {
            i = 5;
            System.out.println(i);
        }


        System.out.println(arrayListSUBLIST);
        System.out.println(arrayList);
    }
}

no i wynik programu : 

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
5
5
5
5
5
5
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Czy jakaś dobra duszyczka mogła by mi wyjaśnić co tu sie właściwie stało. Bo już sie pogubiłem w tych referencjach..
Dziękuję za poświęcenie czasu na tego posta.

1 odpowiedź

0 głosów
odpowiedź 5 grudnia 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

Nie wiem jaki ten program ma sens ale...

Na paczątku tworzysz sobie listę dla typu Intiger składającą się z zadeklarowanych elementów. W kolejnym kroku ją wyświetlasz. Następnie tworzysz nową listę, która jest dwa razy krótsza od poprzedniej a przy okazji przyjmuje identyczne wartości jak lista pierwsza do momentu napotkania granicznego indeksu. Pożniej tworzysz sobie pętle która przeleci tyle razy ile jest elementów w tablicy arrayListSUBLIST ( jest 6 elementów) natomiast każda iteracja pętli wyświetla zadeklarowaną wcześniej zmienną - 5. Domyślam się, że chciałeś tutaj przypisać do tej tablicy dla każdgo indeksu wartość 5. Żeby przypisać nową zmienną na aktualnym indeksie listy potrzebujesz użyć ArrayList.set()W ostatnich dwóch liniach kodu po prostu wyświetlasz 2 tablice.

komentarz 5 grudnia 2019 przez Tomek Orchowski Nowicjusz (140 p.)
Chciałem wymienić połowę listy na inne wartosci, Dziwiło mnie że mimo podmiany wartości ostatecznie nie zostały zmienione. Fragment wyrwany z kontekstu ponieważ wyabstrahowałem go z większego "programu". Dziękuję za pomoc :)
komentarz 5 grudnia 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
No własnie nie podmieniałeś wartości :)

Podobne pytania

0 głosów
2 odpowiedzi 2,140 wizyt
pytanie zadane 27 października 2016 w Java przez Lukasz95 Bywalec (2,160 p.)
+1 głos
1 odpowiedź 319 wizyt
pytanie zadane 31 sierpnia 2020 w JavaScript przez nowyklemens Początkujący (430 p.)
0 głosów
3 odpowiedzi 1,958 wizyt
pytanie zadane 18 marca 2020 w Systemy operacyjne, programy przez lubie internet Użytkownik (780 p.)

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2459p. - CC PL
  9. 2184p. - Maurycy W
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1494p. - ssynowiec
Szczegóły i pełne wyniki

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
...