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

Bład return , zwracanie wartości

Object Storage Arubacloud
0 głosów
192 wizyt
pytanie zadane 24 kwietnia 2020 w Java przez danielo665 Obywatel (1,040 p.)

Program wydaje się ok, chociaż ma błąd związany z return , sam nie potrafię zdiagnozować problemu .

Proszę o wskazówkę. (chodzi mi o uzupełnienie klas bo to sam robiłem)

przypisywałem wartość do return  i chyba to złe zrobiłem bo ja napisałem  

System.out.println(wynik);

wszytko działało  poprawnie.

 

public class Solution {
    public static List getListaDlaGet() {
        
        ArrayList<Integer> arr = new ArrayList<Integer>();
        arr.add(10); 
        arr.add(20);
        
        int wynik = arr.get(0);
        return wynik;
    }

    public static List getListaDlaSet() {
        
        ArrayList<Integer> arr = new ArrayList<Integer>();
        arr.add(10); 
        arr.add(20);
        
        int wynik = arr.set(0, 15);
        return wynik;
    }

    public static List getListaDlaDodajLubWstaw() {
        ArrayList<Integer> arr = new ArrayList<Integer>();
        arr.add(10); 
        arr.add(20);
        
        int wynik = arr.add(15);
        return wynik;
            
    }

    public static List getListaDlaUsun() {
        LinkedList<String> arr = new LinkedList<String>();
        arr.add(10); 
        arr.add(20);
        int wynik = arr.remove(20);
        
        return wynik;
    }

    public static void main(String[] args) {
        
    }
}

 

1 odpowiedź

0 głosów
odpowiedź 24 kwietnia 2020 przez Rollczi Bywalec (2,400 p.)
edycja 25 kwietnia 2020 przez Rollczi

Przykładowo tutaj mamy tutaj błędnie napisane:


public static List getListaDlaUsun() {

int List wynik = arr.get(0) arr;

return wynik;

}

//wynik powinien być tak jak to zdefiniowano na górze czyli List 


...List a ty zwracasz int (wynik)
musisz zmienić typy, aby były takie same. np. na List

Prosty przykład z int

public static int getInt() {

int z = 1;

return z;

}


Rozwiązanie:

import java.util.ArrayList;

public class Solution {
    
    public static ArrayList<Integer> get1(ArrayList<Integer> arrM){
        ArrayList<Integer> arr = new ArrayList<Integer>(arrM);
        return arr;
    }
    public static ArrayList<Integer> get2(ArrayList<Integer> arrM){
        ArrayList<Integer> arr = new ArrayList<Integer>(arrM);
        arr.set(0, 15);
        return arr;
        
    }
    public static ArrayList<Integer> get3(ArrayList<Integer> arrM){
        ArrayList<Integer> arr = new ArrayList<Integer>(arrM);
        arr.add(15);
        return arr;
    }
    public static ArrayList<Integer> get4(ArrayList<Integer> arrM){
        ArrayList<Integer> arr = new ArrayList<Integer>(arrM);
        arr.remove(1);
        return arr;
    }

 
    public static void main(String[] args) {
        ArrayList<Integer> arrMain = new ArrayList<Integer>();
        arrMain.add(10); 
        arrMain.add(20);

        System.out.println(get1(arrMain)); //wyciąganie całej listy
        System.out.println(get2(arrMain));
        System.out.println(get3(arrMain));
        System.out.println(get4(arrMain));

        System.out.println(get1(arrMain).get(0)); //wyciąganie wartości z indexu listy nr1
        System.out.println(get1(arrMain).get(1)+"\n");

        System.out.println(get3(arrMain).get(0)); //wyciąganie wartości z indexu listy nr3
        System.out.println(get3(arrMain).get(1));
        System.out.println(get3(arrMain).get(2));
    }
}

 

komentarz 24 kwietnia 2020 przez Rollczi Bywalec (2,400 p.)
robisz z int to zwracasz w return int.
tak samo z List
komentarz 25 kwietnia 2020 przez danielo665 Obywatel (1,040 p.)

@Rollczi,

czyli chodzi o to ?

ArrayList<Integer> arr = new ArrayList<Integer>();
        arr.add(10); 
        arr.add(20);
        
        List wynik = arr.get(1);
        return wynik;

 

komentarz 25 kwietnia 2020 przez Rollczi Bywalec (2,400 p.)
Taki zapis będzie nie poprawny i Przydało by się wiedzieć co chcesz ty zwrócić...
komentarz 25 kwietnia 2020 przez Rollczi Bywalec (2,400 p.)

ogólnie nie wiem dokładnie jaki miałeś cel w np.
int wynik = arr.remove(20);

komentarz 25 kwietnia 2020 przez danielo665 Obywatel (1,040 p.)
chce zwrócić 2 element listy arr.
komentarz 25 kwietnia 2020 przez danielo665 Obywatel (1,040 p.)
edycja 25 kwietnia 2020 przez danielo665

Faktycznie to nie ma sensu ten przypisanie wartość do remove

Dobra mam, i rozumiem

po prostu bez sensu zrobiłem te przypisania 

Dzięki za wskazówki! dzięki pana pomocy siej udało !

poprawiony kod wyglada tak

LinkedList<Integer> arr = new LinkedList<Integer>();
        arr.add(10); 
        arr.add(20);
        arr.remove(20);
        
        return arr;

 

komentarz 25 kwietnia 2020 przez Rollczi Bywalec (2,400 p.)
edycja 25 kwietnia 2020 przez Rollczi
czekaj zrobię wersję która zwróci Listę
komentarz 25 kwietnia 2020 przez Rollczi Bywalec (2,400 p.)
edycja 25 kwietnia 2020 przez Rollczi

@danielo665, o świetnie właśnie o to chodzi :) ale arr.remove(20); tyczy się INDEXU

np.

arr.add(10);

arr.add(20); 

daje: arr[10, 20]
10 jest w [index 0]   i    20 jest w [index 1]

po:

arr.remove(1);

Zostanie usunięty [index 1] czyli wartość 20

komentarz 25 kwietnia 2020 przez Rollczi Bywalec (2,400 p.)

@danielo665, zobacz jak to zrobiłem; Zapomniałem dodać, że typ powinien być  ArrayList<Integer> a nie List (nie powinno spowodować błędów)

import java.util.ArrayList;

public class Solution {
    
    public static ArrayList<Integer> get1(ArrayList<Integer> arrM){
        ArrayList<Integer> arr = new ArrayList<Integer>(arrM);
        return arr;
    }
    public static ArrayList<Integer> get2(ArrayList<Integer> arrM){
        ArrayList<Integer> arr = new ArrayList<Integer>(arrM);
        arr.set(0, 15);
        return arr;
        
    }
    public static ArrayList<Integer> get3(ArrayList<Integer> arrM){
        ArrayList<Integer> arr = new ArrayList<Integer>(arrM);
        arr.add(15);
        return arr;
    }
    public static ArrayList<Integer> get4(ArrayList<Integer> arrM){
        ArrayList<Integer> arr = new ArrayList<Integer>(arrM);
        arr.remove(1);
        return arr;
    }

 
    public static void main(String[] args) {
        ArrayList<Integer> arrMain = new ArrayList<Integer>();
        arrMain.add(10); 
        arrMain.add(20);

        System.out.println(get1(arrMain)); //wyciąganie całej listy
        System.out.println(get2(arrMain));
        System.out.println(get3(arrMain));
        System.out.println(get4(arrMain));

        System.out.println(get1(arrMain).get(0)); //wyciąganie wartości z indexu listy nr1
        System.out.println(get1(arrMain).get(1)+"\n");

        System.out.println(get3(arrMain).get(0)); //wyciąganie wartości z indexu listy nr3
        System.out.println(get3(arrMain).get(1));
        System.out.println(get3(arrMain).get(2));
    }
}

PS liczę na zatwierdzenie (zaliczenie odpowiedzi)

Podobne pytania

0 głosów
1 odpowiedź 115 wizyt
pytanie zadane 11 kwietnia 2019 w JavaScript przez Bakr Mądrala (6,850 p.)
0 głosów
1 odpowiedź 434 wizyt
pytanie zadane 22 sierpnia 2016 w JavaScript przez Śmieszek_;3 Użytkownik (780 p.)
0 głosów
2 odpowiedzi 438 wizyt
pytanie zadane 29 sierpnia 2019 w Java przez manager96 Bywalec (2,050 p.)

92,583 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,966 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...