Java 字符串';s indexOf(字符串obj)方法在没有字符串对象的情况下工作?

Java 字符串';s indexOf(字符串obj)方法在没有字符串对象的情况下工作?,java,generics,Java,Generics,我正在学习如何制作动态数组。我知道集合API中有内置类,但我只是想了解它在幕后是如何工作的。我从这里获取了全部代码 这是一个泛型类,类中的一个方法对我来说没有意义 公共布尔删除(对象obj){ int index=indexOf(obj); 如果(索引==-1)返回false; removeAt(索引); 返回true; } 上面的方法检查数组中是否存在给定的对象,然后调用removeAt()方法,该方法将创建一个没有该对象的新数组,如果该对象根本不存在,则返回false 1-这个indexO

我正在学习如何制作动态数组。我知道集合API中有内置类,但我只是想了解它在幕后是如何工作的。我从这里获取了全部代码

这是一个泛型类,类中的一个方法对我来说没有意义

公共布尔删除(对象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


如果您不想使用本机类型,请参见了解如何比较泛型对象

哦,好吧,我怎么会这么愚蠢。非常感谢。哦,好吧,我怎么会这么笨。非常感谢。