Heim >Java >JavaBase >So ermitteln Sie, ob sich ein Element in einem Array in Java befindet

So ermitteln Sie, ob sich ein Element in einem Array in Java befindet

尚
Original
2019-11-21 16:52:3512825Durchsuche

So ermitteln Sie, ob sich ein Element in einem Array in Java befindet

So ermitteln Sie, ob ein Element in einem Array in Java vorhanden ist:

1 Konvertieren Sie das Array in eine Liste und verwenden Sie dann die Inhalte in der Liste, um festzustellen ob es existiert.

public static boolean useList(String[] arr,String containValue){
    return Arrays.asList(arr).contains(containValue);
  }

Es ist zu beachten, dass die in der Arrays.asList-Methode konvertierte Liste nicht java.util.ArrayList, sondern java.util.Arrays.ArrayList ist und nicht in java.util konvertiert werden kann. Arrays.ArrayList ist besonders wichtig für Erweiterungsoperationen:

@Override
public boolean contains(Object o) {
  //调用indexOf方法判断其在那个位置,判断其时候为-1
   return indexOf(o) != -1;
}
@Override
public int indexOf(Object o) {
  //获取元素
  E[] a = this.a;
  //判断空
  if (o == null) {
    //循环判断
    for (int i = 0; i < a.length; i++)
      //如果元素为null
      if (a[i] == null)
       //则返回
       return i;
  } else {
    //如果其不为空
    for (int i = 0; i < a.length; i++)
     //判断元素与a[i]是否相等
      if (o.equals(a[i]))
       //相等返回i
       return i;
  }
      //否则返回-1
      return -1;
}

2. Verwenden Sie Set, um zu bestimmen, ob es

public static boolean useSet(String[] arr,String containValue){
    return new HashSet<>(Arrays.asList(arr)).contains(containValue);
  }

3 gibt um

public static boolean useLoop(String[] arr,String containValue){
    //判断是否为空
    if (arr==null||arr.length==0){
      return false;
    }
    for (int i = 0; i < arr.length; i++) {
      //all null
      if (containValue!=null&&containValue.equals(arr[i])){
        return true;
      }else if (arr[i]==null){
        return true;
      }
    }
    return false;
  }

zu implementieren 4. Verwenden Sie die Methode „contains“ in org.apache.commons.lang3.ArrayUtils, um

public static boolean useUtils(String[] arr,String containValue){
    return ArrayUtils.contains(arr,containValue);
  }

zu implementieren. Implementierungscode:

public static boolean contains(final Object[] array, final Object objectToFind) {
    //调用indexof进行判断位置
    return indexOf(array, objectToFind) != INDEX_NOT_FOUND;
  }
  public static int indexOf(final Object[] array, final Object objectToFind, int startIndex) {
    //判断null
    if (array == null) {
      return INDEX_NOT_FOUND;
    }
    //判断起始位置
    if (startIndex < 0) {
      startIndex = 0;
    }
    //判断查询元素是否为null
    if (objectToFind == null) {
      //null则直接使用==进行循环判断位置
      for (int i = startIndex; i < array.length; i++) {
        if (array[i] == null) {
          return i;
        }
      }
     //判断元素是不是array中的元素的实例,如果是则循环并采用equals进行判断
    } else if (array.getClass().getComponentType().isInstance(objectToFind)) {
      for (int i = startIndex; i < array.length; i++) {
        if (objectToFind.equals(array[i])) {
          return i;
        }
      }
    }
    //返回没有找到
    return INDEX_NOT_FOUND;
  }

Für weitere Java-Kenntnisse bitte Beachten Sie das Java Basic Tutorial.

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob sich ein Element in einem Array in Java befindet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn