Maison >Java >JavaBase >Comment déterminer si un élément est dans un tableau en Java

Comment déterminer si un élément est dans un tableau en Java

尚
original
2019-11-21 16:52:3512827parcourir

Comment déterminer si un élément est dans un tableau en Java

Comment déterminer si un élément existe dans un tableau en Java :

1 Convertissez le tableau en liste, puis utilisez le contenu de la liste pour déterminer. si elle existe.

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

Il est à noter que la liste convertie dans la méthode Arrays.asList n'est pas java.util.ArrayList mais java.util.Arrays.ArrayList ne peut pas être convertie en java.util. Arrays.ArrayList. La longueur est particulièrement importante pour les opérations d'expansion. L'implémentation de contain est la suivante :

@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 Utilisez Set pour implémenter pour déterminer s'il existe

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

3. pour implémenter

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;
  }

4. Utilisez la méthode contain dans org.apache.commons.lang3.ArrayUtils pour implémenter

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

code d'implémentation :

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;
  }

Pour plus de connaissances sur Java, veuillez faites attention au tutoriel de base Java .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn