Parametrisierte Listen

ArrayList<Integer> liste=new ArrayList<>();
for (int i=0;i<1000;i++){
    liste.add((int)(Math.random()*100));
}
Java

Aufgaben

  1. Gib alle Zahlen aus.

  2. Gib alle Zahlen aus, die größer als 80 sind.

  3. Gib für jede Zahl die negative Hälfte aus, wenn sie gerade ist, sonst die Zahl selbst.

  4. Addiere alle Zahlen.

  5. Gib von allen Zahlen, die größer als 80 sind, die Summe aus, wobei gerade Zahlen vor dem Addieren halbiert und negiert werden.

Gib alle Zahlen aus

for (int i=0;i<liste.size();i++){
    System.out.println(liste.get(i));
}
Java
for (Integer wert:liste){
    System.out.println(wert);
}
Java
liste.stream().forEach(z->System.out.println(z));
Java
liste.stream().forEach(System.out::println);
Java

Alle Zahlen größer als 80

for (int i=0;i<liste.size();i++){
    if (liste.get(i)>8000){
        System.out.println(liste.get(i));
    }
}
Java
liste.stream().filter(z->z>80).forEach(System.out::println);
Java

Für gerade Zahlen die negative Hälfte

for (int i=0;i<liste.size();i++){
    Integer ausgabe=liste.get(i);
    if (ausgabe%2==0){
        ausgabe=-ausgabe/2;
    }
    System.out.println(ausgabe);
}
Java
liste.stream().map(z->z%2==0?-z/2:z).forEach(System.out::println);
Java

Addiere alle Zahlen

Integer summe=0;
for (int i=0;i<liste.size();i++){
    summe+=liste.get(i);
}
System.out.println("Summe: "+summe);
Java
System.out.println("Summe: "+liste.stream().reduce(0,(x,y)->x+y));
Java

Alles zusammen

Integer summe=0;
for (int i=0;i<liste.size();i++){
    Integer wert=liste.get(i);
    if (wert<=80){
        wert=0;
    }
    if (wert%2==0){
        wert=-wert/2;
    }
    summe+=wert;
}
System.out.println(summe);
Java
System.out.println("Summe: "+liste
        .stream()
        .filter(z->z>80)
        .map(z->z%2==0?-z/2:z)
        .reduce(0,(x,y)->x+y)
);
Java