index -1 ArrayList和对象

时间:2018-03-29 22:58:43

标签: java

public static void test(){
ArrayList<mainclass> zbor = new ArrayList<>();
mainclass l2c = null;

for (int i=0;i<2;i++){
l2c = new mainclass();
System.out.println("name");
l2c.name = user_input.nextLine();
System.out.println("surname");
l2c.sname = user_input.nextLine();

zbor.add(l2c);
}

System.out.println("===1====");
System.out.println(zbor);
System.out.println("===2====");
for (int i=0;i<zbor.size();i++)
{
System.out.println(zbor.get(i));    
}
int index_search = zbor.indexOf("max");
System.out.println(index_search);
System.out.println("===3====");

}
}

===== mainclass====
public class mainclass {

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

String name;
String sname;


}

为什么会这样? 当我试图看到indexof string&#34; max&#34;时,它显示-1,这不是真正的索引应该是1.看图片。有人可以解释我做错了什么。

enter image description here

1 个答案:

答案 0 :(得分:0)

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

  

public int indexOf(Object o)

     

返回此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回-1。

正如Dawood ibn Kareem所说,您的ArrayList不是String列表,而是主类对象列表。 (您在indexOf())中使用了错误的类型

看看这个问题:How to find an object in an ArrayList by property