在ArrayList中查找特定对象

时间:2014-05-07 20:42:56

标签: java

我正在创建一个小程序,该程序应该有一个人类(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++;
            }
        }

3 个答案:

答案 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)

它返回myObjectArrayList的位置,如果不存在,则返回-1。