gpt4 book ai didi

java - 在我的 Vector 上实现 Vector.sort() 时遇到问题

转载 作者:行者123 更新时间:2023-11-30 10:25:45 24 4
gpt4 key购买 nike

我知道这是一件小事,但我仍然不知道如何在我的 Vector 上实现 sort() 函数。我将粘贴我目前正在处理的示例:它是一个动物园(这是一个动物 vector )

类动物园:

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,我会得到什么不同的东西吗? (我一直在使用 vector ,因为我在学校被教导使用它,我知道它并不是那里最新鲜的类(class))

最佳答案

谢谢你的建议,我已经做到了。我会写下来,以防万一有人遇到我同样的问题。

首先,我使用 ArrayList 而不是 Vector。我在我的 Animal 类中实现了 Comparable。我写了我的 compareTo(Animal other) 方法。我调用了 Collections.sort(animals)

关于java - 在我的 Vector 上实现 Vector.sort() 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45986057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com