addAll(Collection<? extends E> c)

Bullz

Mitglied
hallo bin Anfänger und spiele mich gerade ein wenig mit ArrayLists und Lists. Lese brav die Dokumentation und probiere diese Methoden dann in mein Programm einzubauen.

Bloß oft verstehe ich einfach die Ausdrücke nicht wie (Collection<? extends E> c) ....

Weiß nicht mal genau was eine Collection ist ... was müsste ich tun in meinem Programm um diese addall Methode aufzurufen ?

ArrayList (Java Platform SE 7 ))

Java:
public class ListeDemo {

    public static void main(String[] args) {

        Liste list = new Liste();

        list.ausgeben();
        list.gerätHinzufügen("essen");
        list.gerätHinzufügen("schlafen");
        list.gerätHinzufügen("lernen");
        list.ausgeben();
        list.gerätAnStelleHinzfügen(1, "mehr essen");
        //list.gerätEntfernen("lernen");
        System.out.println("");
        //list.enthält("schlafen");
        list.ausgeben();
        
    }
}

Java:
import java.util.ArrayList;
import java.util.List;


public class Liste {

    public List<String> geräte;

    public Liste() {
        geräte = new ArrayList<String>();
    }

    public void ausgeben() {

        for (String gerät : geräte) {
            System.out.println("Listinhalte  " + gerät);;
        }
    }

    public void gerätHinzufügen(String gerät) {
        geräte.add(gerät);
    }

    public void gerätEntfernen(String gerät) {
        geräte.remove(gerät);
    }
    
    public void gerätLöschen() {
        geräte.clear();
    }
    
    public void enthält(String name) {
        boolean zustand = geräte.contains(name);
        System.out.println(zustand);
    }
    
    public void gerätAnStelleHinzfügen(int index, String gerät) {
        geräte.add(index, gerät);
    }
}
 
Zuletzt bearbeitet von einem Moderator:
S

Spacerat

Gast
Eine Collection ist eine Sammlung - das Urinterface aller Listen und Sets.
Dieses [c]addAll(Collection<? extends E> c)[/c] ermöglicht das Hinzufügen von erweiterten Objekten als denen der als generischen Typ angegebenen Klasse (<E>).
 

Bullz

Mitglied
ich versuche einfach diese Methode so zu schreiben das sie funktioniert. Ich habe es nicht zusammen gebracht das ich mein Programm so modifiziere das ich diese Methode aufrufen kann weil ich nicht weiß was der Compiler von mir will wenn er das verlangt

Collection<? extends E> c

Effektiv soll mein Programm mit folgendem ergänzt sein ...
Java:
public void fügealleshinzu(?????) {
      geräte.addall(????);
}

in der Main Klasse
Java:
list.addAll(???)
 
G

Gast2

Gast
Hier ein Beispiel zur addAll Methode:
Java:
public static void main(String... args) {
	List<String> strings = new ArrayList<String>();
	strings.add("Hallo");
	
	List<String> strings2 = new ArrayList<String>();
	strings2.add("Welt");
	strings2.add("!");
	
	strings.addAll(strings2);
	System.out.println(strings);
}

Bezogen auf deine Klaase könnte man folgendes machen:

Java:
public void fügealleshinzu(List<Strings> strings) {
      geräte.addall(strings);
}
 

Bullz

Mitglied
super danke ;) ach so geht der Dreck .... soda nach langem durchschauen der java.util und ihren Interfaces machts langsam auch in meinem dämlichen Schädel klack. Habe im Anhang ein Diagramm des Interface Collection ...

Ein Interface fordert von jeder Klasse gewisse Methoden die diese zu Verfügung stellen müssen ( in meinen eigenen Worten )

Interface Collection steht an der obersten Stelle und bietet den " Durchschnitt " aller Methoden an. Damit meine ich alle Methoden die sich in allen 3 Interfaces set list Queue gleichzeitig befinden.

Je weiter runter ich in der Hierarchie gehe desto mehr Methoden können die Interfaces anbieten ...

kann man das so unterschreiben ?
 

Anhänge

  • java-collection.jpg
    java-collection.jpg
    94,3 KB · Aufrufe: 49

Bullz

Mitglied
danke ;) hast es nur anderes ausgedrückt als ich

1 Zeilen aufruf
Java:
ArrayList<String> liste1 = new ArrayList<String>();

2 Zeilen aufruf
Java:
List<String> liste2;
    liste2 = new ArrayList<String>();

Liste2 ist eine List bzw könnte auch collection hinschreiben je nachdem was ich brauche.
Was genau ist den liste1 ? list oder Collection ? ( queue und set kann es ja nicht sein )
 
S

Spacerat

Gast
Richtig, ein Set oder eine Queue kann es nicht sein. Aber es kann sowohl List aber auch Collection sein, der tatsächliche Typ aber ist eine List, um genau zu sein eine ArrayList.
Interfaces dienen dazu, als Parameter die Mindestanforderungen eines Objektes zu bestimmen und als Rückgabetyp die tatsächliche Implementation nach aussen hin zu verschleiern.
BTW.: Meine andere Ausdrucksweise kann schon "überlebenswichtig" sein, deswegen hab' ich auch "fast..." davor geschrieben. Aber das wird dir bei Zeiten noch auffallen.
 
Zuletzt bearbeitet von einem Moderator:

Bullz

Mitglied
vielen dank für die Hilfe ;) mir ist klar das ich von Anfang an nicht jede Nuance an programmier knowhow verstehe aber ich bleib am Ball ..

vielleicht noch eine kleine Frage... Interfaces können von einander erben... klaro ...

aber Klassen können nicht von Interfaces erben... sondern nur implementieren :rtfm: hoffe ich jedenfalls
 

Anhänge

  • java-collection.jpg
    java-collection.jpg
    94,3 KB · Aufrufe: 42
Ähnliche Java Themen
  Titel Forum Antworten Datum
mrStudent <? extends T> und <? super T> Java Basics - Anfänger-Themen 1
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
J extends Problem Java Basics - Anfänger-Themen 2
N extends und super vs new object Java Basics - Anfänger-Themen 4
JavaTalksToMe Extends/Implements Frage Java Basics - Anfänger-Themen 3
D public ArrayList(Collection<? extends E> c); Java Basics - Anfänger-Themen 2
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
J Implements und Extends Java Basics - Anfänger-Themen 5
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
M mehrere extends? Java Basics - Anfänger-Themen 19
J doppelname nach schlüsselwort extends Java Basics - Anfänger-Themen 4
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
T extends und implements Java Basics - Anfänger-Themen 11
Crazynet 2 extends Java Basics - Anfänger-Themen 22
S Wrapper Klasse und extends Java Basics - Anfänger-Themen 2
W Methoden Rückgabedatentyp java.util.Map<java.lang.String,? extends ...> Java Basics - Anfänger-Themen 4
R Vererbung Übergabe von Variablen der Superklasse an Subklasse mit "extends" Java Basics - Anfänger-Themen 5
K Erste Schritte Extends Implements Java Basics - Anfänger-Themen 4
S Threads Thread wenn extends schon vergeben Java Basics - Anfänger-Themen 8
vandread Java Wildcards - Wann super wann extends? Java Basics - Anfänger-Themen 2
F Anfängerfrage zu extends Java Basics - Anfänger-Themen 12
T Input/Output StructuredFileReader extends BufferedReader Java Basics - Anfänger-Themen 6
K Erste Schritte extends vererbung Java Basics - Anfänger-Themen 15
P Class<? extends Entity> Array Java Basics - Anfänger-Themen 9
A final und extends Java Basics - Anfänger-Themen 14
Y Threads extends Thread oder implements Runnable Java Basics - Anfänger-Themen 10
C Vererbung "extends" umgehen mittels Objekterzeugung?! Java Basics - Anfänger-Themen 29
L Implements<-->extends und Interface Java Basics - Anfänger-Themen 10
T Collections Queue<? extends Number> add() offer() Java Basics - Anfänger-Themen 13
S Klasse extends HashMap Java Basics - Anfänger-Themen 20
L Problem mit Vererbung (extends) cannot find symbol Java Basics - Anfänger-Themen 3
D MyActionListener extends Thread Java Basics - Anfänger-Themen 3
H2SO3- Designfragen (mehrfach extends) Java Basics - Anfänger-Themen 11
G Unterschied e extends y vs ? extends y Java Basics - Anfänger-Themen 5
X List von Klasse B als List von Klasse A (B extends A) Java Basics - Anfänger-Themen 2
H extends Locale Java Basics - Anfänger-Themen 4
O import ja....extends nein Java Basics - Anfänger-Themen 5
G Muss es immer extends sein ? Java Basics - Anfänger-Themen 9
N class Test<E extends MyAbstractClass> => typ von E? Java Basics - Anfänger-Themen 5
K mehrere Extends Java Basics - Anfänger-Themen 2
S extends Vector<xyz> Java Basics - Anfänger-Themen 10
S new .() extends JDialog {.} Java Basics - Anfänger-Themen 15
S extends und Konstruktor Java Basics - Anfänger-Themen 8
E Interface extends Observable Java Basics - Anfänger-Themen 13
G Wiedermal vererbung, extends JDialog extends Exception ? Java Basics - Anfänger-Themen 8
U extends JLabel & Thread Java Basics - Anfänger-Themen 2
G Innere klasssen unde "extends" klassen definieren, Java Basics - Anfänger-Themen 2
frau-u JMenu mit extends JPanel? Java Basics - Anfänger-Themen 4
G "extends DBConnection" funktioniert nicht Java Basics - Anfänger-Themen 15
N extends / implements / static, bedeutung ?? Java Basics - Anfänger-Themen 12
C Problem mit Zeichnen auf einer extends Canvas Class... Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben