1、ArrayList indexOf() 方法
indexOf(Object obj) 方法返回动态数组中元素的索引值。
返回的值为:
返回在数组中最先出现 obj 元素的索引值,索引下标从0开始
如果动态数组中不存在指定的元素,则该 indexOf() 方法返回 -1
ArrayList<String> aa = new ArrayList<>();
aa.add("上海");
aa.add("北京");
aa.add("a");
aa.add("p");
aa.add("p");
System.out.println(aa); // [上海, 北京, a, p, p]
int b = aa.indexOf("app");
int e = aa.indexOf("海");
int f = aa.indexOf("北京");
int h = aa.indexOf("p");
System.out.println(b);//结果为 -1 因为不存在 app 的值
System.out.println(e);//结果为 -1 因为不存在 海 的值
System.out.println(f);//结果为 1 北京出现的位置索引下标为1
System.out.println(h);//结果为 3 p第一次出现的位置索引下标为3
2、String indexOf(String str) 方法
indexOf(String str) 方法可返回某个指定的字符串值在字符串中首次出现的位置,索引下标从0开始
如果没有找到匹配的字符串则返回 -1。
String a = "A,B2,CDF,D,F";
int c = a.indexOf("B");
int g = a.indexOf("D");
int j = a.indexOf("F");
int k = a.indexOf("上");
int u = a.indexOf("D",7);
System.out.println(c);//结果为:2 B出现的位置索引下标为2
System.out.println(g);//结果为:6 D出现的位置索引下标为6
System.out.println(j);//结果为:7 F出现的位置索引下标为7
System.out.println(k);//结果为:-1 上 未出现返回-1
System.out.println(u);//结果为:9 在第7个位置开始查找字符 "D" 第一次出现的位置,所以是9
3、string.indexOf(String str,int fromIndex)方法
str:需要检索的字符串值
fromIndex:规定在字符串中开始检索的位置
String a = "A,B2,CDF,D,F";
int u = a.indexOf("D",7);
System.out.println(u);//结果为:9 在第7个位置开始查找字符 "D" 第一次出现的位置,所以是9
4、两者之间的区别
ArrayList:indexOf(Object obj) 方法返回动态数组中元素的索引值首次出现的位置
String: indexOf(String str) 方法可返回某个指定的字符串值在字符串中首次出现的位置
5、最容易误导的地方是
比如上面的举例:
String字符串中有 , (逗号),也是算索引下标的
而ArrayList:返回 [上海, 北京, a, p, p] 其中 , (逗号) 是不算下标的,就是根据数组的值查下标,
其中查询 int b = aa.indexOf("app"), 并不是 数组中的【a,p,p】
如果数组中有 【上海, 北京, a, p, p,app】则返回5
6、 拓展:ArrayList lastIndexOf() 方法 和 String lastIndexOf() 方法
ArrayList:lastIndexOf(Object obj) 方法返回动态数组中元素的索引值最后出现的位置
String: lastIndexOf(String str) 方法可返回某个指定的字符串值在字符串中最后出现的位置