Java 字符串';s indexOf(字符串obj)方法在没有字符串对象的情况下工作?
我正在学习如何制作动态数组。我知道集合API中有内置类,但我只是想了解它在幕后是如何工作的。我从这里获取了全部代码 这是一个泛型类,类中的一个方法对我来说没有意义Java 字符串';s indexOf(字符串obj)方法在没有字符串对象的情况下工作?,java,generics,Java,Generics,我正在学习如何制作动态数组。我知道集合API中有内置类,但我只是想了解它在幕后是如何工作的。我从这里获取了全部代码 这是一个泛型类,类中的一个方法对我来说没有意义 公共布尔删除(对象obj){ int index=indexOf(obj); 如果(索引==-1)返回false; removeAt(索引); 返回true; } 上面的方法检查数组中是否存在给定的对象,然后调用removeAt()方法,该方法将创建一个没有该对象的新数组,如果该对象根本不存在,则返回false 1-这个indexO
公共布尔删除(对象obj){
int index=indexOf(obj);
如果(索引==-1)返回false;
removeAt(索引);
返回true;
}
上面的方法检查数组中是否存在给定的对象,然后调用removeAt()方法,该方法将创建一个没有该对象的新数组,如果该对象根本不存在,则返回false
1-这个indexOf()方法在这里如何工作良好?不使用String对象,不在数组上迭代
2-这是否与通用相关?如果是,请提供一些链接,这样我就可以了解这一点。它使用DynamicArray的indexOf()函数,该函数在数组中进行迭代。您不必使用字符串来执行此操作。它所做的是查看数组中的对象是否等于传递给indexOf()函数的对象。如果是,则返回索引。它使用DynamicArray的indexOf()函数,该函数在数组中进行迭代。您不必使用字符串来执行此操作。它所做的是查看数组中的对象是否等于传递给indexOf()函数的对象。如果是,则返回索引。您所列的代码确实使用了索引。该类定义为
DynamicArray
,其中
部分是对象的类型
因此DynamicArray
存储String
s,而DynamicArray
存储Integer
s
无论如何,indexOf()
本身不使用泛型,它只是在数组上迭代,使用equals
查找正确的对象:
public int indexOf(Object obj) {
for (int i = 0; i < len; i++) {
if (obj == null) {
if (arr[i] == null) return i;
} else {
if (obj.equals(arr[i])) return i;
}
}
return -1;
}
public int indexOf(Object obj){
对于(int i=0;i
如果
DynamicArray
包含String
s,则equals
调用将转到String.equals
您所列的代码确实使用了。该类定义为DynamicArray
,其中
部分是对象的类型
因此DynamicArray
存储String
s,而DynamicArray
存储Integer
s
无论如何,indexOf()
本身不使用泛型,它只是在数组上迭代,使用equals
查找正确的对象:
public int indexOf(Object obj) {
for (int i = 0; i < len; i++) {
if (obj == null) {
if (arr[i] == null) return i;
} else {
if (obj.equals(arr[i])) return i;
}
}
return -1;
}
public int indexOf(Object obj){
对于(int i=0;i
如果
DynamicArray
包含String
s,则equals
调用将转到String.equals
索引在数组中查找相等的对象,并返回数组中的索引,如您所见
public int indexOf(Object obj){
对于(int i=0;i
如果在数组中找不到搜索的对象,IndeOf返回-1
如果不想使用本机类型,请参阅以了解如何比较泛型对象。indexOf在数组中查找相等的对象,并返回数组中的索引,如您所见
public int indexOf(Object obj){
对于(int i=0;i
如果在数组中找不到搜索的对象,IndeOf返回-1
如果您不想使用本机类型,请参见了解如何比较泛型对象哦,好吧,我怎么会这么愚蠢。非常感谢。哦,好吧,我怎么会这么笨。非常感谢。