无法在我的Vector上实现Vector.sort()

时间:2017-08-31 16:20:14

标签: java list sorting vector comparable

我知道这是一件小事,我仍然无法弄清楚如何在我的Vector上实现sort()函数。 我将粘贴我正在处理的示例:它是一个动物园(这是动物的矢量)

Class Zoo:

import java.util.Vector;
public class Zoo {

//attributes
private Vector<Animal> animals;

//builder
public Zoo() {
    animals = new Vector<Animal>();
}

//function that adds an animal to my Zoo
public void addAnimal(Animal a) {
    animal.add(a);
}

//function that removes an animal from my Zoo
public void removeAnimal(Animal a) {
    animals.remove(animals.indexOf(a));
}

//function that prints a list of animals currently in my Zoo
public void view() {
    System.out.println(animals);
}
}

动物类:

public class Animal{

//attributes (name and species)
private String name;
private String species;

//setters and getters
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getSpecies() {
    return species;
}
public void setSpecies(String species) {
    this.species = species;
}

//builder
public Animal(String name, String species) { 
    this.name = name;
    this.species = species;
}

//override of toString from Object class
public String toString() {
    return "The animal " + getName() + " belongs to the family of " + getSpecies() + "\n";
}

//override of equals from Object Class
public boolean equals(Object other) {
    return other instanceof Animal
                && getName().equals(((Animal)other).getName())
                    &&getSpecies().equals(((Animal)other).getSpecies());
}
}

我的问题是:sort()方法需要什么才能工作? 我试过了:

- 使Animal类实现Comparable(并因此编写我的compareTo(Animal other)函数)

- 使Animal类实现Comparator(并因此编写我自己的comprare(Animal a,Animal b)函数)

我一直得到的错误是:

the method sort(Comparator<?Super Animal> in the type Vector<Animal> 
is not applicable for the arguments.

如果我使用ArrayList而不是Vector,我会得到什么不同吗? (我正在使用矢量,因为我被教导在学校使用它,我知道它并不是那里最新鲜的课程)

1 个答案:

答案 0 :(得分:0)

感谢您的建议,我已经完成了这项工作。我会写下如果有人遇到同样的问题。

首先,我使用了ArrayList而不是Vector。 我在我的Animal类中实现了Comparable。 我写了我的compareTo(动物其他)方法。 我打电话给Collections.sort(动物)