import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
public class Book implements Comparable <Book>{
private String title;
private int pages;
private double price;
public Book(String title, int pages, double price) {
super();
setTitle(title);
setPages(pages);
setPrice(price);
}
@Override
public String toString() {
return "Book [title=" + title + ", pages=" + pages + ", price=" + price + "]";
}
public static void main(String[] args) {
List<Book> lista = new ArrayList<Book>();
Book[] books = { new Book("Z-Rambo", 1113, 25.56), new Book("Rocky", 999, 45.99),
new Book("Transporter", 1234, 56.78) };
lista.addAll(Arrays.asList(books));
Collections.sort(lista);
System.out.println("Sortowanie po tytule");
for(Book el:lista){
System.out.println(el);
}
System.out.println("------------");
System.out.println("Sortowanie po ilości stron");
Collections.sort(lista, new ComparatorPageCount());
for(Book el:lista){
System.out.println(el);
}
System.out.println("------------");
System.out.println("Sortowanie po cenie");
Collections.sort(lista, new ComparatorPrice());
for(Book el:lista){
System.out.println(el);
}
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
if (pages>0) this.pages = pages;
else this.pages=0;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
if (price>0)this.price = price;
else price=0;
}
@Override
public int compareTo(Book book) {
if (this.getTitle().compareTo(book.getTitle())<0) return -1;
else if (this.getTitle().compareTo(book.getTitle())>0) return 1;
return 0;
}
}
import java.util.Comparator;
public class ComparatorPageCount implements Comparator<Book> {
@Override
public int compare(Book book1, Book book2) {
if (book1.getPages()<book2.getPages())
return -1;
else if (book1.getPages()>book2.getPages())
return 1;
return 0;
}
}
import java.util.Comparator;
public class ComparatorPrice implements Comparator<Book> {
@Override
public int compare(Book book1, Book book2) {
if (book1.getPrice()<book2.getPrice())
return -1;
else if (book1.getPrice()>book2.getPrice())
return 1;
return 0;
}
}
Comments