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
当我试图找到indexOf时,它会显示我&#34; -1&#34;。 我发现一些类似的主题与我说的相同问题 要覆盖equals()和hashcode(),我已经完成了,我们可以看到,但仍然是同样的问题。 有人可以解释或告诉我如何做正确.Thx
答案 0 :(得分:0)
您似乎永远不会将ob
添加到您的主要课程中。
尝试更改
me.add(new mainclass());
到
me.add(ob);