Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.85 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. public class Autovermietung {
  5.  
  6.     private List<Auto> autos;
  7.  
  8.     public Autovermietung() {
  9.         this.autos = new ArrayList<Auto>();
  10.     }
  11.  
  12.     public List<Auto> getAutos() {
  13.         return this.autos;
  14.     }
  15.  
  16.     public void setAutos(List<Auto> autos) {
  17.         this.autos = autos;
  18.     }
  19.  
  20.     public void addAuto(Auto auto) {
  21.         autos.add(auto);
  22.     }
  23.  
  24.     public List<Auto> filtern(String typ, int maxKm) {
  25.         List<Auto> result = new ArrayList<>();
  26.         for (Auto a : autos) {
  27.             if (a.getTyp().equals(typ) && a.getKilometer() < maxKm) {
  28.                 result.add(a);
  29.             }
  30.         }
  31.         return result;
  32.     }
  33.  
  34.     public static List<Auto> mergesort(List<Auto> autos) {
  35.         if (autos.size() > 1) {
  36.             List<Auto>[] teillisten = split(autos);
  37.             List<Auto> a1 = mergesort(teillisten[0]);
  38.             List<Auto> a2 = mergesort(teillisten[1]);
  39.             return merge(a1, a2);
  40.         }
  41.         return autos;
  42.     }
  43.  
  44.     public static List<Auto>[] split(List<Auto> autos) {
  45.         List<Auto>[] result = new ArrayList[2];
  46.         result[0] = new ArrayList<Auto>(autos.subList(0, (autos.size() + 1) / 2));
  47.         result[1] = new ArrayList<Auto>(autos.subList(result[0].size(), autos.size()));
  48.         return result;
  49.     }
  50.  
  51.     public static List<Auto> merge(List<Auto> a1, List<Auto> a2) {
  52.         List<Auto> result = new ArrayList<>();
  53.         while ((a1.size() + a2.size()) > 0) {
  54.             if (a1.size() != 0 && (a2.size() == 0 || a1.get(0).getKilometer() < a2.get(0).getKilometer())) {
  55.                 result.add(a1.remove(0));
  56.             } else if (a1.size() == 0 || a1.get(0).getKilometer() >= a2.get(0).getKilometer()) {
  57.                 result.add(a2.remove(0));
  58.             }
  59.         }
  60.         return result;
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement