Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- public class Main {
- public static void main(String[] args) {
- ArrayBox<Osoba> bo = new ArrayBox<>(2);
- bo.add(new Osoba("Kowalski", 19)); // nazwisko = "Kowalki", wiek = 19
- bo.add(new Student("Kowalska", 18, 100)); // nazwisko, wiek, grupa = 100
- bo.add(new Student("Kowalska", 20, 200));
- Osoba[] to = new Osoba[] {new Osoba("Nowak", 21), new Student("Nowak", 22, 200)};
- bo.addAll(to);
- /*
- System.out.println(bo.min()); // Student 1: Kowalska, 18, 100
- */
- ArrayBox<Student> bst = new ArrayBox<>(1);
- bst.add(new Student("Nowacka", 24, 100));
- bst.add(new Student("Nowacka", 24, 300));
- bst.add(new Student("Nowacka", 24, 200));
- /*
- System.out.println(bst.max()); // Student 5: Nowacka, 24, 300
- */
- ArrayBox<Integer> bi = new ArrayBox<>(2);
- Integer[] ti = new Integer[] {Integer.valueOf(1), 2, 3};
- bi.addAll(ti);
- bi.print(); // 1, 2, 3
- ArrayBox<String> bs = new ArrayBox<>(1);
- String[] ts = new String[] {"cpp", new String("java")};
- bs.addAll(ts);
- bs.swap(0,1);
- bs.print(); // java, cpp
- }
- }
- class ArrayBox <T extends Comparable> {
- Object[] arr;
- ArrayBox(int pojemnosc) {
- arr = new Object[pojemnosc];
- }
- boolean add(T element) {
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] != element) {
- if (arr[i] == null) {
- arr[i] = element;
- return true;
- } else {
- Object[] arr2 = Arrays.copyOf(arr, i+1);
- arr2[i] = element;
- return true;
- }
- }
- }
- return false;
- }
- boolean addAll(T[] array) {
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] != array) {
- if (array[i] == null) {
- for (int j = 0; j < array.length; j++){
- arr[i] = array[j];
- return true;
- }
- } else {
- for (int j = 0; j < array.length; j++) {
- Object[] arr2 = Arrays.copyOf(arr, i+1);
- arr2[i] = array[j];
- return true;
- }
- }
- }
- }
- return false;
- }
- boolean delete(T usunietyElement) {
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] == usunietyElement) {
- arr[i] = null;
- return true;
- }
- }
- return false;
- }
- boolean swap(int swap1, int swap2){
- int tmp;
- if (swap1 != swap2){
- tmp = swap1;
- swap1 = swap2;
- swap2 = tmp;
- return true;
- }
- return false;
- }
- void print(){
- for (int i = 0; i < arr.length; i++){
- System.out.println(arr[i]);
- }
- }
- }
- class Osoba implements Comparable<Osoba> {
- String nazwisko;
- int wiek;
- Osoba(String nazwisko, int wiek){
- this.nazwisko = nazwisko;
- this.wiek = wiek;
- }
- // porownujemy 2 obiekty this, o
- // mozna korzystac z compareTo(...) z String
- public int compareTo(Osoba o) {
- int wynik = this.nazwisko.compareTo(o.nazwisko);
- if (wynik == 0){
- wynik = this.wiek - o.wiek;
- return wynik;
- }
- return wynik;
- }
- @Override
- public String toString(){
- return nazwisko + "wiek" + wiek;
- }
- }
- class Student extends Osoba {
- int numerGrupy;
- Student(String nazwisko, int wiek, int numerGrupy){
- super(nazwisko, wiek);
- this.numerGrupy = numerGrupy;
- }
- public int compareTo(Student s) {
- int wynik = this.nazwisko.compareTo(s.nazwisko);
- if (wynik == 0){
- wynik = this.wiek - s.wiek;
- if (wynik == 0){
- wynik = this.numerGrupy - s.numerGrupy;
- return wynik;
- }
- return wynik;
- }
- return wynik;
- }
- @Override
- public String toString(){
- return super.toString() + "numer grupy: " + numerGrupy;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement