my first collection

 
 
 
Сообщения:29
Добрый день.

прошу знатоков подсказать, все ли по феншую сделано?
это моя первая коллекция.

import java.util.*;

class Dog implements Comparable<Dog>{
    String kind;
    String color;
    String weight;
    String name;

    Dog(String k, String c, String w, String n){
        kind   = k;
        color  = c;
        weight = w;
        name   = n;
    }

  //  @Override;
    public int compareTo(Dog d){
        Dog dog = d;

        int result = kind.compareTo(dog.kind);
        if (result != 0) {
            return result;
        }

        result = color.compareTo(dog.color);
        if (result != 0) {
            return result;
        }

        result = weight.compareTo(dog.weight);
        if (result != 0) {
            return result;
        }

        result = name.compareTo(dog.name);
        if (result != 0) {
            return result;
        }
        return 0;
    }
}

public class Main{
    public static void main(String[] args) {
        ArrayList<Dog> dogList = new ArrayList<Dog>();
        dogList.add(new Dog("labrador", "red", "34", "abba"));
        dogList.add(new Dog("doberman", "red", "34", "boy"));
        dogList.add(new Dog("labrador", "white", "15", "baton"));
        dogList.add(new Dog("spaniel", "blue", "34", "rex"));
        dogList.add(new Dog("labrador", "white", "15", "duka"));
        dogList.add(new Dog("spaniel", "blue", "34", "dron"));
        dogList.add(new Dog("doberman", "ping", "17", "dude"));
        dogList.add(new Dog("labrador", "red", "30", "dogy"));

        for (Dog dog : dogList) {
            System.out.println("Kind: " + dog.kind + ", Color: " + dog.color + ", Weigth: " + dog.weight + ", Name: " + dog.name);
        }
        Collections.sort(dogList);
        System.out.println("SORTED!");
        for (Dog dog : dogList) {
            System.out.println("Kind: " + dog.kind + ", Color: " + dog.color + ", Weigth: " + dog.weight + ", Name: " + dog.name);
        }
    }
}


собаки конечно слишком "абстрактные" получились, но это всего лишь пример.


и подскажите, в каких случаях нужно вставлять аннотацию
@Override;
?
и с ней, и без нее работает одинаково в этом конкретном примере
 
 
Сообщения:88
@Override пишется если в текущем классе метод (заданный в классе родителе или применяемом интерфейсе) переопределяется, правильно здесь @Override писать

что будет, если в compareTo() придет null ?
 
 
Сообщения:29
Откуда ему (null) взяться?
Конструктор не позволит

Нашел хорошее описание
ru.stackoverflow.com/questions/105/Что-означает-override-перед-объявлением-метода
Изменен:25 дек 2016 09:57
 
 
Сообщения:88
Dog bull = new Dog("labrador", "red", "34", "abba");
Dog chihua;
bull.compareTo(chihua);
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет