Java 比较ArrayList中的元素值

Java 比较ArrayList中的元素值,java,arrays,Java,Arrays,我试图在ArrayList“minions”中找到一个具有最高“evilLevel”(在另一个类中定义)的元素 public Minion(字符串名,int-level,boolean-onMission)-来自类Minion 私人设置的仆从; int-maxEvilLevel=0; 仆从最卑鄙的仆从; 公共仆从登记册(){ minions=newhashset(); } 公共仆从getMostEvilMinion(){ if(minions.isEmpty()){ 返回null; } 对于(仆

我试图在ArrayList“minions”中找到一个具有最高“evilLevel”(在另一个类中定义)的元素

public Minion(字符串名,int-level,boolean-onMission)-来自类Minion
私人设置的仆从;
int-maxEvilLevel=0;
仆从最卑鄙的仆从;
公共仆从登记册(){
minions=newhashset();
}
公共仆从getMostEvilMinion(){
if(minions.isEmpty()){
返回null;
}
对于(仆从m:仆从){
if(m.GetEvilleLevel()>MaxEvilleLevel){
maxEvilLevel=m.getEvilLevel();
仆从最仆从=m;
}
}
归还最卑鄙的人;
}
不幸的是,该方法在此处返回“null”

for(Minion m : minions){
    if(m.getEvilLevel() > maxEvilLevel) {
        maxEvilLevel = m.getEvilLevel();
        Minion theMostEvilMinion = m;
    }
}
return theMostEvilMinion;
在for循环的
中,您声明并设置一个局部变量
themostVilminion
,该变量随后被遗忘,因为它是在该块中声明的

然后在循环之后,返回实例变量
theMostEvilMinion
,这是一个在类顶部声明的不同变量

您需要声明并设置一个本地
theMostEvilMinion
变量,然后返回它

Minion theMostEvilMinion = null;
int maxEvilLevel = 0;
for (Minion m : minions) {
    if (m.getEvilLevel() > maxEvilLevel) {
        maxEvilLevel = m.getEvilLevel();
        theMostEvilMinion = m;
    }
}
return theMostEvilMinion;
然后,您还可以删除
mostevilminion
maxEvilLevel
实例变量。

此处:

for(Minion m : minions){
    if(m.getEvilLevel() > maxEvilLevel) {
        maxEvilLevel = m.getEvilLevel();
        Minion theMostEvilMinion = m;
    }
}
return theMostEvilMinion;
在for
循环的
中,您声明并设置一个局部变量
themostVilminion
,该变量随后被遗忘,因为它是在该块中声明的

然后在循环之后,返回实例变量
theMostEvilMinion
,这是一个在类顶部声明的不同变量

您需要声明并设置一个本地
theMostEvilMinion
变量,然后返回它

Minion theMostEvilMinion = null;
int maxEvilLevel = 0;
for (Minion m : minions) {
    if (m.getEvilLevel() > maxEvilLevel) {
        maxEvilLevel = m.getEvilLevel();
        theMostEvilMinion = m;
    }
}
return theMostEvilMinion;

然后您还可以删除
mostVilminion
maxEvilLevel
实例变量。

此代码不会编译。请环顾四周,通读这本书。特别是您说的是
ArrayList
,但您的代码使用的是
HashSet
。它们不是同一件事。哦,对了,最初我想我使用的是ArrayList,但后来切换到HashSet,同时有点迷路。这段代码不会编译。请环顾四周,通读这本书。特别是您说的是
ArrayList
,但您的代码使用的是
HashSet
。它们不是同一件事。哦,对了,最初我想我使用的是ArrayList,但后来切换到HashSet,同时稍微迷路了。