[Java] Collections Intro example

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]
  }
}

 

posted @ 2020-12-30 03:32  Zhentiw  阅读(84)  评论(0编辑  收藏  举报