package lukasz; import java.util.Objects; public class Book implements Comparable { private String title; String author; int pages; public Book(String title, String author, int pages){ this.title = title; this.author = author; this.pages = pages; } @Override public int hashCode() { int hash = 7; hash = 31 * hash + Objects.hashCode(this.title); hash = 31 * hash + Objects.hashCode(this.author); hash = 31 * hash + this.pages; return hash; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Book other = (Book) obj; if (this.pages != other.pages) { return false; } if (!Objects.equals(this.title, other.title)) { return false; } if (!Objects.equals(this.author, other.author)) { return false; } return true; } @Override public String toString() { return "Book{" + "title=" + title + ", author=" + author + ", pages=" + pages + '}'; } @Override public int compareTo(Book o){ int compareTitle = title.compareTo(o.title); if (compareTitle == 0){ return author.compareTo(o.author); } else{ return compareTitle; } } } ------------------------------------------------------------------------------------------------------- package lukasz; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; public class Start { public static void main(String[] args) { List books = new ArrayList<>(); books.add(new Book("Podstawy języka Java","A",100)); books.add(new Book("Java dla opornych","B",100)); books.add(new Book("Podstawy języka Java","C",150)); books.add(new Book("C# dla początkujących","B",200)); books.add(new Book("W pustyni i w puszczy","Henryk Sienkiewicz",350)); for(Book book : books){ System.out.println(book); } Collections.sort(books); System.out.println("\nPosortowane: "); for (Book book : books){ System.out.println(books.toString()); } books.sort(new CompareBook()); System.out.println("Posortowane wg. stron: "); System.out.println(books.toString()); books.sort(new CompareBook2()); System.out.println("Posorotwane wg. autora malejąco: "); System.out.println(books.toString()); Iterator b = books.iterator(); while (b.hasNext()){ Book bo = b.next(); if (bo.pages <= 150){ b.remove(); } } System.out.println("Usunięcie z listy wartości mniejszych niż 150: "); System.out.println(books); } } --------------------------------------------------------------------------------------------------- package lukasz; import java.util.Comparator; public class CompareBook implements Comparator { @Override public int compare(Book o1, Book o2) { int a = o2.pages - o1.pages; if (a == 0){ a = o1.author.compareTo(o2.author); } return a; } } ------------------------------------------------------------------------------------ package lukasz; import java.util.Comparator; public class CompareBook2 implements Comparator { @Override public int compare(Book o1, Book o2) { int compareAuthor = o1.author.compareTo(o2.author); return compareAuthor; } }