我正在创建一个小程序,该程序应该有一个人类(Name,BirthYear)和一个宠物类(Name,AnimalType)。 在主要我创建了一个菜单,以便用户可以添加人和宠物。
现在我的问题是,如果我创造4个人"布鲁斯,托尼,凯文,威廉"并且用户想给凯文一个宠物,我怎么知道凯文列表中的哪个位置?请原谅你不能使用contains()
,对吗?好吧,我无论如何......
问题在于我在课堂上为创造宠物的人提供了一种方法,因为我希望它们能够被链接......
public void setAnimal(String dName, String dType)
{
Animal.add(new Pet(dName, dType));
}
这就是我创建宠物的方法。
private static void createA()
{
String P = JOptionPane.showInputDialog(null,"This is the people you can give a pet, please write a name:\n" + People);
P = P.toUpperCase();
//I want to write some code here to give a int a number so i cant but it in the get downbelow insted //of "???"
boolean b =true;
while (b != false)
{
try
{
ggr3 = Integer.parseInt(JOptionPane.showInputDialog("How many pets do you want to add: "));
b = false;
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e + "\nWrite with numbers!");
}
}
while (ggr3 != ggr4)
{
dNamn = JOptionPane.showInputDialog("Write the name: ");
dTyp = JOptionPane.showInputDialog("Write animal type: ");
People.get(???).setAnimal(dName, dType);
ggr4++;
}
}
答案 0 :(得分:1)
因为你不能使用contains(),可以吗?
是的,您只需要根据您的要求覆盖equals()
方法
答案 1 :(得分:0)
List<Person> arr = new ArrayList<Person>();
Person kevin = new Person("kevin");
arr.add(kevin);
Person newKevin = arr.get(kevin);
System.out.println(kevin == newKevin); // True b/c they point to the same object.
System.out.println(kevin.equals(newKevin)); // True b/c they have equal values.
您需要在.equals()
课程中添加Person
方法。
答案 2 :(得分:0)
在数组列表中搜索对象的方法是使用indexOf
方法。
示例:
int x = myAList.indexOf(myObject)
它返回myObject
中ArrayList
的位置,如果不存在,则返回-1。