# Java Listen



## DonAlbi (15. Nov 2018)

Hallo Leute,
würde gerne von euch wissen, wie ihr die Aufgabe Nr.1 lösen würdet, da ich momentan nicht weiß was ich da machen soll.
Aufg1)
Implementieren Sie die Methode addList(List newList), die die übergebene Liste an die vorhandene Liste anhängt.  
Ich darf übrigens nur die Klasse List bearbeiten.

```
package hard;

public class List {

    private static final String START_LABEL = "|START|";
    public Element head;

    //Aufgabe 1
    public void addList(List newList) {
    Element zeiger= head;



        int i=1;
        Element pointer=head;
            int gesamt= getSize()+ newList.getSize();
            while(i<gesamt){
                //newList.addElement(pointer);

                i++;
                System.out.print("Test");
            }
        System.out.print(" "+i);


    }

    //Aufgabe 2
    public void moveElement(int prevPos, int afterPos) {

    }

    //Aufgabe 3
    public void filterElements(int threshold) {

    }

    // ------------- HILFSMETHODEN ---------------


    // Methode zum Ausgeben der Anzahl der Elemente in der Liste.
    public int getSize() {
        int count = 0;
        Element pointer = head;

        while (pointer != null) {
            count++;
            pointer = pointer.getNext();
        }

        return count;
    }

    // Methode zum Einfügen eines neuen Elementes am Ende der Liste.
    public void addElement(Element newElement) {

        if (head == null) {
            head = newElement;
        } else {
            Element pointer = this.head;

            while (pointer.getNext() != null) {
                pointer = pointer.getNext();
            }

            pointer.setNext(newElement);
        }
    }

    // Methode, die die komplette Liste löscht.
    public void clearList() {
        head = null;
    }

    // Methode, die zur Darstellung der Liste dient.
    @Override
    public String toString() {
       
        StringBuilder str = new StringBuilder(START_LABEL);

        Element pointer = head;
        while (pointer != null) {
            str.append("---> ");
            str.append(pointer.getName());
            str.append(" (" + pointer.getValue() + ")");
            pointer = pointer.getNext();
        }

        str.append("---> null");

        return str.toString();
    }
}
```


```
package hard;

public class ListsHard {
   
    // Fuehre diese Main aus, um die Methoden deiner List Klasse zu überprüfen.
   
    public static void main (String[] args) {
    List list = new List();
   
    System.out.println("---------- Erstellen der Liste ----------");
    System.out.println(String.format("Neue Liste mit %d Elementen:", list.getSize()));
    System.out.println(list.toString());
    System.out.println("");
   
    Element element1 = new Element(27 ,"Stefan");
    Element element2 = new Element(21 , "Anna");
    Element element3 = new Element(18 , "Paul");
    Element element4 = new Element(31 , "Max");
    Element element5 = new Element(20 , "Lisa");
    Element element6 = new Element(25 , "Maxim");
    Element element7 = new Element(23 , "Marie");
    Element element8 = new Element(29 , "Isabelle");
    Element element9 = new Element(32 , "Valentin");
    Element element10 = new Element(23 , "Sabine");
   
    list.addElement(element1);
    list.addElement(element2);
    list.addElement(element3);
    list.addElement(element4);
    list.addElement(element5);
    list.addElement(element6);
    list.addElement(element7);
    list.addElement(element8);
    list.addElement(element9);
    list.addElement(element10);
   
    Element new1 = new Element(1,"Berlin");
    Element new2 = new Element(2,"Rheinberg");
    Element new3 = new Element(3,"Essen");
    Element new4 = new Element(4,"Weimar");
    Element new5 = new Element(5,"Bonn");
   
    List newList = new List();
   
    newList.addElement(new1);
    newList.addElement(new2);
    newList.addElement(new3);
    newList.addElement(new4);
    newList.addElement(new5);
   
    System.out.println("---------- Einfügen der Elemente in die Liste ----------");
    System.out.println(String.format("Die Liste hat nun %d Elemente:", list.getSize()));
    System.out.println(list.toString());
    System.out.println("");
   
    list.addList(newList);
   
    System.out.println("---------- Anhängen einer neuen Liste ----------");
    System.out.println(String.format("Die Liste hat nun %d Elemente:", list.getSize()));
    System.out.println(list.toString());
    System.out.println("");
   
    list.moveElement(14, 15);
   
    System.out.println("---------- Verschieben eines Elementes ----------");
    System.out.println(String.format("Die Liste hat nun %d Elemente:", list.getSize()));
    System.out.println(list.toString());
    System.out.println("");
   
    list.filterElements(25);
   
    System.out.println("---------- Rausfiltern der Elemente ----------");
    System.out.println(String.format("Die Liste hat nun %d Elemente:", list.getSize()));
    System.out.println(list.toString());
    System.out.println("");
    }
   

   
   
   
   
}
```


```
package hard;

public class Element {

    private Element next;
    private int value;
    private String name;

    public Element(int value, String name) {
        this.value = value;
        this.name = name;
    }

    public Element getNext() {
        return next;
    }

    public void setNext(Element next) {
        this.next = next;
    }

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public void setName(String newName) {
        this.name = newName;
    }

    public void increaseByOne() {
        value++;
    }

}
```
Hätte vllt jemand einen Lösungsvorschlag, da ich nicht weiß, wie ich die Elemente aus newList an die normale Liste hinzufügen soll.


----------



## Tarrew (15. Nov 2018)

Du musst nur die addElement Methode mit dem head der neuen Liste aufrufen. Ist ein 1-Zeiler


----------

