Java ArrayList indexOf() 方法 和 String indexOf() 方法区别

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) 方法可返回某个指定的字符串值在字符串中最后出现的位置

猜你喜欢

转载自blog.csdn.net/SUMMERENT/article/details/129324143