import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; /** * Created by user on 20.03.16. */ public class Exer4 { public static void main(String[] args) { // a Letter[] letters = new Letter[4]; letters[0]= new Letter("Paul", 4.3, 'A'); letters[1]= new Letter("Anna", 0.5, 'B'); letters[2]= new Letter("Karl", 0.91, 'E'); letters[3]= new Letter("Peter", 3.5, 'B'); List<Letter> expressLetter = extractExpress(letters); Parcel[] parcels= new Parcel[2]; parcels[0]= new Parcel("Karl", 0.91, 'E'); parcels[1]= new Parcel("Peter", 3.5, 'E'); List<Parcel> expressParcels = extractExpress(parcels); expressLetter.forEach(System.out::println); expressParcels.forEach(System.out::println); // b List<Integer> intList= new ArrayList<>(); intList.add(1); intList.add(4); intList.add(4); List<Integer> intOhneDoubles = removeDoubles(intList); // [1, 4] intOhneDoubles.stream().forEach(System.out::println); List<String> stringList= new LinkedList<>(); stringList.add("Hallo"); stringList.add("Hallo"); stringList.add("Hallo"); List<String> stringOhneDoubles = removeDoubles(stringList); // [Hallo] stringOhneDoubles.stream().forEach(System.out::println); } public static <T extends PostItem> List<T> extractExpress(T[] arr) { return Stream.of(arr) .filter(x -> x.getDispatchMode() == 'E') .collect(Collectors.toList()); } public static <T> List<T> removeDoubles(List<T> orig) { return orig.stream().distinct().collect(Collectors.toList()); } }