Letztes Element einer ArrayList

Diskutiere Letztes Element einer ArrayList im Java Basics - Anfänger-Themen Bereich.
M

Macklaire

Hey,
ganz dumme Frage ^^

Wie kann ich denn das letzte Element einer ArrayList abrufen?
Also hätte es halt gerne ohne Zählschleife gemacht.

Denn das geht leider nicht(obwohl ich nicht weiß, warum nicht):

Java:
ausgabe.get(ausgabe.size() - 1) == 0
 
Kirby_Sike

Kirby_Sike

Naja also das letzte Element holt man so:

Java:
ausgabe.get(ausgabe.size()-1)
Was jedoch versuchst du da? Warum vergleichst du mit 0? Elemente einer Datenstruktur(z.B. ArrayList) sind immer Objekte ;) Objekte werden mit .equals() auf Gleichheit geprüft :)
 
L

LimDul

Java:
ausgabe.get(ausgabe.size() - 1)
ist schon korrekt. Das gibt das letzte Element zurück. (Und bei einer leeren Liste eine Exception).

Wenn du das natürlich mit 0 vergleichst, macht das nur Sinn, wenn da auch Zahlen drin sind und wissen willst ob das Letzte Element die Zahl 0 ist.
 
M

Macklaire

Also bei mir geht es um folgendes:

Es wird eine Reihe an Zahlen eingegeben. Negative zahlen werden nicht ausgegeben, sowie 2x 0 hintereinander wird auch nur zu einer 0.

Das ganze sieht bei mir wie folgt aus:

Java:
ArrayList ausgabe = new ArrayList();

    public ArrayList filtereZahlen(int eineZahl) {
        int letztesElement = ausgabe.size() -1;
        if (eineZahl < 0) {
        } else if (ausgabe.get(ausgabe.size() - 1) == 0 && eineZahl == 0) {
        } else {
            ausgabe.add(eineZahl);
            System.out.println(ausgabe.size() - 1);
        }

        System.out.println("\n$ java FilterSamples\n" + ausgabe);
        return ausgabe;
    }
 
MoxxiManagarm

MoxxiManagarm

ausgabe.get(ausgabe.size() - 1) == 0

Der Code sieht erstmal nicht falsch aus, ggf. musst du noch mit dem boxed Integer aufpassen, aber ich glaube das passt so. Allerdings greifst du im Fall, dass die Liste leer ist, auf den Index -1 zu, was zu einer IndexOutOfBoundsException führen wird.
 
MoxxiManagarm

MoxxiManagarm

Kannst außerdem mal beschreiben was die Methode tun soll? Sie sieht irgendwie strange aus 🙃
 
M

Macklaire

haha, naja die soll konsolen eingaben wie: 1 2 3 0 0 -1 -1 3 4 -1 -1 -1, auf: 1 2 3 0 3 4 kürzen. Ich werd die Methode deutlicher machen ^^. Bin ja noch Anfänger
 
MoxxiManagarm

MoxxiManagarm

haha, naja die soll konsolen eingaben wie: 1 2 3 0 0 -1 -1 3 4 -1 -1 -1, auf: 1 2 3 0 3 4 kürzen. Ich werd die Methode deutlicher machen ^^. Bin ja noch Anfänger
Nagut, aber dann fehlt dir sicher noch was. Du musst dir Liste iterieren und auf "eineZahl" vergleichen. Wenn sie unterschiedlich ist, dann fügst du sie zu einer neuen Liste hinzu. (zumindest wenn ich den UseCase richtig erfasst habe) Hier mal ein kleines Beispiel mit einem anderen UseCase, aber ich denke das Prinzip ist klar:

Java:
public class IntList {

    private ArrayList<Integer> list = new ArrayList<>();

    public IntList(int... values) {
        for (int value : values) {
            list.add(value);
        }
    }

    public ArrayList<Integer> getMultiplied(int multiplier) {
        ArrayList<Integer> multipliedList = new ArrayList<>();

        for (int value : list) {
            multipliedList.add(value * multiplier);
        }

        return multipliedList;
    }

    public static void main(String[] args) {
        IntList list = new IntList(1, 2, 3);
        System.out.println(list.getMultiplied(4));
    }
   
}
Ausgabe:
Code:
[4, 8, 12]
 
R

Rajmund

Mein Vorschlag:
Code:
public class test {

    public static List<Integer> filter(List<Integer> list) {
        List<Integer> newList = new ArrayList<>();
        
        int lastElement = -1;
        
        for(int element:list) {
            if ((element == 0 && lastElement != element) || element > 0) {
                newList.add(element);
            }
            lastElement = element;
        }
        return newList;
    }
    
    public static void main(String [] args) {
        List<Integer> liste = Arrays.asList(1, 2, 3, 0, 0, -1, -1, 3, 4, -1, -1, -1);
        
        System.out.println(filter(liste));
    }
}
 
Thema: 

Letztes Element einer ArrayList

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben