-2
我在BlueJ,SuperHero和SuperWeapon中有两个类。我需要创建一种在Arraylist中添加超级武器的方法。该方法应该使用SuperWeapon类型的参数来调用。如何检查数组列表中是否已经存在字符串值?
这意味着该方法假定超武器对象存在。该方法因此不应该实例化新的超级武器对象。
并且只有具有唯一名称的武器可以被添加到列表中,因此需要对新的SuperWeaponobject进行控制。
下面的代码是我目前所拥有的,据我所知,现在的代码并不检查超级武器的名称是否是唯一的。对不起,如果代码有点奇怪,我从瑞典语翻译它为英语,但我希望有人了解我需要什么。
代码:
import java.util.ArrayList;
public class SuperHero
{
private ArrayList<SuperWeapon> superWeaponList;
private String superHeroName;
public SuperHero()
{
superHeroName = "Superman";
superWeaponList = new ArrayList<SuperWeapon>();
}
public void addSuperWeapon(SuperWeapon superWeapon)
{
if(superWeaponList.contains(superWeapon))
{
System.out.println("The Superhero already has a superweapon with the name: " + superWeapon.getName() + ".");
}
else
{
superWeaponList.add(superWeapon);
System.out.println("A new superweapon has been registred for the superhero");
}
}
}
您没有字符串列表作为您的标题暗示。你必须在你的''SuperWeapon''类中实现''equals''来使''contains''工作。 – f1sh