Java indexOf - 数组和对象

时间:2018-04-03 21:28:51

标签: java arraylist

package javaapplication10arraylistandobjects;

import java.util.ArrayList;
import java.util.Scanner;

public class JavaApplication10Arraylistandobjects {

    static Scanner user_input = new Scanner(System.in);

    public static void main(String[] args) {

        test();

    }

    public static void test() {

        ArrayList<mainclass> me = new ArrayList<>();
        mainclass ob = new mainclass();

        System.out.println("name");
        ob.name = user_input.nextLine();

        me.add(new mainclass());

        // int index = me.indexOf(ob);
        System.out.println("new position" + me.indexOf(ob));

    }

}
package javaapplication10arraylistandobjects;

import java.util.Objects;

public class mainclass {

    String name;

    public mainclass(String name) {
        this.name = name;
    }

    public mainclass() {

    }

    @Override
    public String toString() {
        return name;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 83 * hash + Objects.hashCode(this.name);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final mainclass other = (mainclass) obj;
        if (!Objects.equals(this.name, other.name)) {
            return false;
        }
        return true;
    }
}

===输出=== 跑: 名称 强尼 新职位1

建立成功(总时间:2秒)

当我试图找到indexOf时,它会显示我&#34; -1&#34;。 我发现一些类似的主题与我说的相同问题 要覆盖equals()和hashcode(),我已经完成了,我们可以看到,但仍然是同样的问题。 有人可以解释或告诉我如何做正确.Thx

1 个答案:

答案 0 :(得分:0)

您似乎永远不会将ob添加到您的主要课程中。

尝试更改

 me.add(new mainclass());

 me.add(ob);