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.看图片。有人可以解释我做错了什么。
答案 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()
)中使用了错误的类型