一 、语法:找到元素返回值是对应找到的元素的下标0到n,没找到返回值是-1
arraylist.indexOf(Object obj)
二、当Object是String的时候,即使是不同的String只要内容相同就可以找到
import java.util.ArrayList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
List<String> stringlist = new ArrayList<>();
String a = "AA";
stringlist.add(a);
int res = stringlist.indexOf("AA");
System.out.println(res);
}
}
结果输出0
import java.util.ArrayList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
List<String> stringlist = new ArrayList<>();
String a = "AA";
stringlist.add(a);
String b = "AA";
int res = stringlist.indexOf(b);
System.out.println(res);
}
}
二、当Object是封装类的时候,indexOf当中的Object必须是放入到ArrayList当中的对象,如果是新创建的对象,即使名称一样也无法找到
案例一:找到
import java.util.ArrayList;
import java.util.List;
class Patient{
String name;
public Patient(String name){
this.name=name;
}
}
public class Test {
public static void main(String[] args) {
List ps = new ArrayList();
Patient p2 = new Patient("Mike");
ps.add(p2);
int f = ps.indexOf(p2);
if(f >= 0){
System.out.println("Mike Found");
}
}
}
案例二:无法找到
import java.util.ArrayList;
import java.util.List;
class Patient{
String name;
public Patient(String name){
this.name=name;
}
}
public class Test {
public static void main(String[] args) {
List ps = new ArrayList();
Patient p2 = new Patient("Mike");
ps.add(p2);
int f = ps.indexOf(new Patient("Mike"));
if(f >= 0){
System.out.println("Mike Found");
}else{
System.out.println("Not Found");
}
}
}