Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.56 KB | None | 0 0
  1. import java.util.Arrays;
  2.  
  3. public class Main {
  4.     public static void main(String[] args) {
  5.         ArrayBox<Osoba>  bo = new ArrayBox<>(2);
  6.  
  7.         bo.add(new Osoba("Kowalski", 19));                        // nazwisko = "Kowalki", wiek = 19
  8.         bo.add(new Student("Kowalska", 18, 100));                    // nazwisko, wiek, grupa = 100
  9.         bo.add(new Student("Kowalska", 20, 200));
  10.  
  11.         Osoba[] to = new Osoba[] {new Osoba("Nowak", 21), new Student("Nowak", 22, 200)};
  12.         bo.addAll(to);
  13. /*
  14.         System.out.println(bo.min());                                           // Student 1: Kowalska, 18, 100
  15. */
  16.         ArrayBox<Student> bst = new ArrayBox<>(1);
  17.         bst.add(new Student("Nowacka", 24, 100));
  18.         bst.add(new Student("Nowacka", 24, 300));
  19.         bst.add(new Student("Nowacka", 24, 200));
  20. /*
  21.         System.out.println(bst.max());                                          // Student 5: Nowacka, 24, 300
  22. */
  23.         ArrayBox<Integer> bi = new ArrayBox<>(2);
  24.         Integer[] ti = new Integer[] {Integer.valueOf(1), 2, 3};
  25.         bi.addAll(ti);
  26.  
  27.         bi.print();                                                                          // 1, 2, 3
  28.  
  29.         ArrayBox<String> bs = new ArrayBox<>(1);
  30.         String[] ts = new String[] {"cpp", new String("java")};
  31.         bs.addAll(ts);
  32.         bs.swap(0,1);
  33.         bs.print();                                                                         // java, cpp
  34.     }
  35. }
  36. class ArrayBox <T extends Comparable> {
  37.  
  38.     Object[] arr;
  39.  
  40.     ArrayBox(int pojemnosc) {
  41.         arr = new Object[pojemnosc];
  42.     }
  43.  
  44.  
  45.     boolean add(T element) {
  46.         for (int i = 0; i < arr.length; i++) {
  47.             if (arr[i] != element) {
  48.                 if (arr[i] == null) {
  49.                     arr[i] = element;
  50.                     return true;
  51.                 } else {
  52.                     Object[] arr2 = Arrays.copyOf(arr, i+1);
  53.                     arr2[i] = element;
  54.                     return true;
  55.                 }
  56.             }
  57.         }
  58.         return false;
  59.     }
  60.  
  61.     boolean addAll(T[] array) {
  62.         for (int i = 0; i < arr.length; i++) {
  63.             if (arr[i] != array) {
  64.                 if (array[i] == null) {
  65.                     for (int j = 0; j < array.length; j++){
  66.                         arr[i] = array[j];
  67.                         return true;
  68.                     }
  69.                 } else {
  70.                     for (int j = 0; j < array.length; j++) {
  71.                         Object[] arr2 = Arrays.copyOf(arr, i+1);
  72.                         arr2[i] = array[j];
  73.                         return true;
  74.                     }
  75.                 }
  76.             }
  77.         }
  78.         return false;
  79.     }
  80.  
  81.     boolean delete(T usunietyElement) {
  82.         for (int i = 0; i < arr.length; i++) {
  83.             if (arr[i] == usunietyElement) {
  84.                 arr[i] = null;
  85.                 return true;
  86.             }
  87.         }
  88.         return false;
  89.     }
  90.  
  91.     boolean swap(int swap1, int swap2){
  92.         int tmp;
  93.         if (swap1 != swap2){
  94.             tmp = swap1;
  95.             swap1 = swap2;
  96.             swap2 = tmp;
  97.             return true;
  98.         }
  99.         return false;
  100.     }
  101.  
  102.     void print(){
  103.         for (int i = 0; i < arr.length; i++){
  104.             System.out.println(arr[i]);
  105.         }
  106.     }
  107. }
  108.  
  109. class Osoba implements Comparable<Osoba> {
  110.  
  111.     String nazwisko;
  112.     int wiek;
  113.  
  114.     Osoba(String nazwisko, int wiek){
  115.         this.nazwisko = nazwisko;
  116.         this.wiek = wiek;
  117.     }
  118.     // porownujemy 2 obiekty this, o
  119.     // mozna korzystac z compareTo(...) z String
  120.     public int compareTo(Osoba o) {
  121.         int wynik = this.nazwisko.compareTo(o.nazwisko);
  122.         if (wynik == 0){
  123.             wynik = this.wiek - o.wiek;
  124.             return wynik;
  125.         }
  126.         return wynik;
  127.     }
  128.     @Override
  129.     public String toString(){
  130.         return nazwisko + "wiek" + wiek;
  131.     }
  132.  
  133. }
  134.  
  135. class Student extends Osoba {
  136.  
  137.     int numerGrupy;
  138.  
  139.     Student(String nazwisko, int wiek, int numerGrupy){
  140.         super(nazwisko, wiek);
  141.         this.numerGrupy = numerGrupy;
  142.     }
  143.     public int compareTo(Student s) {
  144.         int wynik = this.nazwisko.compareTo(s.nazwisko);
  145.         if (wynik == 0){
  146.             wynik = this.wiek - s.wiek;
  147.             if (wynik == 0){
  148.                 wynik = this.numerGrupy - s.numerGrupy;
  149.                 return wynik;
  150.             }
  151.             return wynik;
  152.         }
  153.         return wynik;
  154.     }
  155.     @Override
  156.     public String toString(){
  157.         return super.toString() + "numer grupy: " + numerGrupy;
  158.     }
  159.  
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement