Maison >Java >javaDidacticiel >Java détermine si une instance d'un élément existe dans un tableau ou une collection

Java détermine si une instance d'un élément existe dans un tableau ou une collection

高洛峰
高洛峰original
2017-01-23 16:47:291629parcourir

Introduction :

Aujourd'hui, un ami du groupe a demandé : "Comment savoir si une collection de tableaux contient déjà l'objet actuel ?" Tout le monde connaît la comparaison de boucles, y compris moi, un excellent membre du groupe. Y a-t-il un autre moyen ? Jetons un coup d'œil à cet article.

Texte :

Les personnes que vous pouvez trouver ici sont toutes des programmeurs. Il devrait être plus clair de saisir directement le code.

import java.io.Serializable; 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Collection; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
  
public class Test implements Serializable { 
  
  private static final long serialVersionUID = 2640934692335200272L; 
  
  public static void main(String[] args) { 
  
    // data segment 
    String[] SAMPLE_ARRAY = new String[] { "aaa", "solo", "king" }; 
    String TEST_STR = "king"; 
    Collection TEMPLATE_COLL = new ArrayList(); 
    TEMPLATE_COLL.add("aaa"); 
    TEMPLATE_COLL.add("solo"); 
    TEMPLATE_COLL.add("king"); 
    // <- data segment 
  
    // 1, 字符串数组是否存在子元素 
    // 1-1, 直接使用API 
    Arrays.sort(SAMPLE_ARRAY); 
    int index = Arrays.binarySearch(SAMPLE_ARRAY, TEST_STR); 
    System.out.println("1-1_sort-binarySearche:"
        + ((index != -1) ? true : false)); 
  
    // 1-2, 使用正则(因Arrays.toString()引入了“, [ ]”故只在有限环境下可靠) 
    String tmp = Arrays.toString(SAMPLE_ARRAY); 
    Pattern p = Pattern.compile("king"); 
    Matcher m = p.matcher(tmp); 
    System.out.println("1-2_toString-Regex:" + m.find()); 
  
    // 1-3, 都会写循环,略过。 
    // TODO: 循环数据依次比对,此处略去5行代码。 
  
    // 2, 集合是否存在子元素 
    // 2-1, 最常用的contains 
    System.out.println("2-1_contains:" + TEMPLATE_COLL.contains(TEST_STR)); 
  
    // 2-1-1, 扩展: 
    // 按模板集合,将当前集合分为“模板已存在”与“不存在”两个子集。 
    Collection coll = new ArrayList<String>(); 
    coll.add("aaa"); 
    coll.add("bbb"); 
    coll.add("ccc"); 
    // 完整复制集合 
    Collection collExists = new ArrayList(coll); 
    Collection collNotExists = new ArrayList(coll); 
  
    collExists.removeAll(TEMPLATE_COLL); 
    System.out.println("2-1-1_removeAll[exist]:" + collExists); 
    collNotExists.removeAll(collExists); 
    System.out.println("2-1-1_removeAll[notexist]:" + collNotExists); 
  
  } 
  
}

Résultats en cours :

1-1_sort-binarySearche:true
1-2_toString-Regex:true
2-1_contains:true
2-1-1_removeAll[exist]:[bbb, ccc]
2-1-1_removeAll[notexist]:[aaa]

Résumons ~. =

1) Au moins trois types de tableaux :

A) BinarySearch(,). Mais la condition est que cela doit être trié à l'avance et que les frais généraux doivent être pris en compte.
B) Regex. Cependant, le tableau doit être converti en chaîne. La méthode fournie par la classe Arrays introduira les trois délimiteurs ", [ ]", ce qui peut affecter le résultat de la détermination.
C) Comparaison de boucles.

2) Il existe au moins deux types de collections :

A) Boucle. S'il est déterminé qu'il existe uniquement par défaut (existence non personnalisée), il est recommandé de ne pas le considérer directement.
B) contient. Si vous pouvez vous rapprocher, faites-le de manière décisive.

3) Les ensembles fournissent des opérations similaires à "l'addition et la soustraction", vous pouvez donc y prêter attention.

Ce qui précède est l'intégralité du contenu des exemples Java apportés par l'éditeur pour déterminer si un élément existe dans un tableau ou une collection. J'espère que vous prendrez en charge le site Web PHP chinois ~

Plus de Java. tableaux de détermination Ou s'il existe une instance d'un certain élément dans la collection. Pour les articles connexes, veuillez consulter le site Web chinois de PHP !

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