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

Freigeben: 2019-11-21 16:52:35
Original
12816 Leute haben es durchsucht

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);
  }
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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);
  }
Nach dem Login kopieren

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;
  }
Nach dem Login kopieren

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);
  }
Nach dem Login kopieren

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;
  }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage