public class Code {
public static void main(String[] args) {
List<String> names = Arrays.asList("Paul", "Jane", "Sam", "Michaela");
// Way to sort prior to Java 8 lambdas
Collections.sort(names, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return b.compareTo(a);
}
});
// first iteration with lambda
Collections.sort(names, (String a, String b) -> {
return b.compareTo(a);
});
// now remove the data types and allow the compile to infer the type
Collections.sort(names, (a, b) -> b.compareTo(a));
/*
Book {
String title
String authorFName
String authorLName
int pages
}
*/
Book book1 = new Book("Missing Peregrine", "Ranson", "Riggs", 382);
Book book2 = new Book("Harry Potter", "JK", "Rowling", 411);
Book book3 = new Book("The cat", "Dr", "Seuss", 45);
List<Book> books = Arrays.asList(book1, book2, book3);
int total = book.stream()
.collect(Collectors.summingInt(Book::getPages));
System.out.println(total); //838
List<String> lilst = books.stream()
.map(Book::getAuthorLName)
.collect(Collectors.toList());
System.out.println(list); // [Riggs, Rowling, Seuss]
// create a list with duplicates
List<Book> dupBooks = Arrays.asList(book1, book2, book3, book1, book2);
System.out.println("Before removing dupliates");
System.out.println(dupBooks.toString());
// remove duoplicates using a Set
Collection<Book> noDups = new HashSet<>(dupBooks);
System.out.println("After removing dupliates");
System.out.println(noDups.toString());
// example of using Set to eliminate dups and sort automatically
Set<Integer> numbers = new HashSet<>(asList(4,3,3,3,2,1,1,1));
System.out.println(numbers.toString()); // [1,2,3,4]
}
}