vencinachev

JavaComparator

Feb 25th, 2021
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.73 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;
  4. import java.util.List;
  5.  
  6. public class Program {
  7.  
  8.     public static void main(String[] args) {
  9.         List<Laptop> laps = new ArrayList<Laptop>();
  10.         laps.add(new Laptop("Dell", 4, 1000));
  11.         laps.add(new Laptop("Acer", 2, 1500.50));
  12.         laps.add(new Laptop("Asus", 8, 1070));
  13.         laps.add(new Laptop("HP", 16, 1400));
  14.        
  15.         Comparator<Laptop> comp = new Comparator<Laptop>()
  16.         {
  17.             @Override
  18.             public int compare(Laptop l1, Laptop l2) {
  19.                 if (l1.getRam() < l2.getRam()) {
  20.                     return 1;
  21.                 } else if (l1.getRam() > l2.getRam()) {
  22.                     return -1;
  23.                 }
  24.                 return 0;
  25.             }  
  26.         };
  27.        
  28.        
  29.        
  30.         Collections.sort(laps, comp);
  31.        
  32.        
  33.        
  34.         for(Laptop lap : laps) {
  35.             System.out.println(lap);
  36.         }
  37.        
  38.         System.out.println(laps.getClass());
  39.     }
  40.  
  41. }
  42.  
  43.  
  44. public class Laptop implements Comparable<Laptop>{
  45.     private String model;
  46.     private int ram;
  47.     private double price;
  48.    
  49.     public Laptop(String model, int ram, double price) {
  50.         this.model = model;
  51.         this.ram = ram;
  52.         this.price = price;
  53.     }
  54.    
  55.     public String getModel() {
  56.         return model;
  57.     }
  58.     public void setModel(String model) {
  59.         this.model = model;
  60.     }
  61.     public int getRam() {
  62.         return ram;
  63.     }
  64.     public void setRam(int ram) {
  65.         this.ram = ram;
  66.     }
  67.     public double getPrice() {
  68.         return price;
  69.     }
  70.     public void setPrice(double price) {
  71.         this.price = price;
  72.     }
  73.  
  74.     @Override
  75.     public String toString() {
  76.         return "Laptop [model=" + model + ", ram=" + ram + ", price=" + price + "]";
  77.     }
  78.  
  79.     @Override
  80.     public int compareTo(Laptop other) {
  81.         if (this.getPrice() > other.getPrice()) {
  82.             return -1;
  83.         } else if (this.getPrice() == other.getPrice()) {
  84.             return 1;
  85.         }
  86.         return 0;
  87.     }
  88.    
  89. }
  90.  
Add Comment
Please, Sign In to add comment