Table des matières
Paramètres de recherche binaire et leurs composants
Algorithme
Recherche binaire à l'aide d'un comparateur - syntaxe
Comment suivre
Recherchez des objets définis par l'utilisateur dans des listes à l'aide de comparateurs
Exemple 1 : utilisez Collections, BinarySearch() pour rechercher des données dans une liste
Sortie
Exemple 2 : Trier la liste par ordre croissant
Exemple 3 : Triez la liste par ordre décroissant et trouvez le numéro d'index
Exemple 4 : Trouver le nombre d'éléments et de valeurs
Conclusion
Maison Java javaDidacticiel Programme Java pour rechercher un objet défini par l'utilisateur dans une liste à l'aide d'un comparateur de recherche binaire

Programme Java pour rechercher un objet défini par l'utilisateur dans une liste à l'aide d'un comparateur de recherche binaire

Aug 28, 2023 pm 04:05 PM
java程序 comparateur recherche binaire

Programme Java pour rechercher un objet défini par lutilisateur dans une liste à laide dun comparateur de recherche binaire

Interface de comparaison Java pour trier les objets Java. Les classes de comparaison en Java comparent différents objets (Obj 01, Obj 02) en appelant "java.util.comparator". Dans cette méthode, les objets peuvent être comparés en fonction de la valeur de retour. La comparaison peut être positive, égale ou négative.

Le processus offre aux utilisateurs plusieurs séquences de tri. Il existe de nombreuses façons de comparer les deux méthodes.

  • public int compare class (obj 1, obj 2) - Effectue une comparaison entre deux objets.

  • public Boolean equals (obj) - Compare l'objet actuel avec l'objet spécifié.

Java Collection Class - Fournit des méthodes statiques pour trier les éléments d'une collection de données. Cet élément de collection est utilisé dans TreeMap.

Discutons de la façon de créer un code Java à l'aide de comparateurs pour rechercher un objet défini par l'utilisateur dans une liste via une recherche binaire.

Paramètres de recherche binaire et leurs composants

  • Paramètres

    • est un tableau spécifique

    • fromindex - le premier élément à rechercher

    • toindex - le dernier élément à rechercher key - la valeur à rechercher Paires clé-valeur à rechercher

    • Comparateur

  • Retour

    • Renvoie l'index de la clé de recherche qui existe dans la plage spécifiée.

  • Exceptions

    • ClassCast

    • Paramètres illégaux

    • ArrayIndexOutOfBounds

Algorithme

  • Première étape : commencez.

  • Étape 2 - Calcul de l'ensemble d'éléments intermédiaires.

  • Étape 3 - Comparez le mot-clé à l'élément du milieu.

  • Étape 4 - Si les valeurs des éléments clés et intermédiaires sont les mêmes ; renvoyez le résultat.

  • Étape 5 - Sinon, la valeur de la clé est supérieure à l'élément du milieu, suivez alors la moitié droite de l'ensemble

  • Étape 6 - Ou ; si la valeur de la clé est inférieure à l'élément médian, suivez le supérieur

Recherche binaire à l'aide d'un comparateur - syntaxe

public static int binarySearch(primitive() p,Primitive key)
public static int binarySearch(Object() o,Object key)

public static int binarySearch(Object() o,Object key,Comparator c)
Java Collections binarySearch(List<? extends Comparable1<? super R>> list, R key)and;
Java Collections binarySearch(List<? extends R> list, R key, Comparator<? super R> c)
Copier après la connexion

Il existe deux syntaxes bien connues pour rechercher des objets définis par l'utilisateur dans des listes via une recherche binaire à l'aide de comparateurs. Dans le premier cas, la liste doit être triée par ordre croissant et la procédure est appelée à l'aide d'une méthode spécifique, où le résultat est indéfini.

En revanche, pour rechercher un objet spécifié, il est important d'appeler la méthode.

Comment suivre

  • Méthode 1 pour rechercher des objets définis par l'utilisateur dans une liste à l'aide d'un chercheur et d'un comparateur binaires

Recherchez des objets définis par l'utilisateur dans des listes à l'aide de comparateurs

Dans ces exemples, nous utilisons des collections, des opérations de classe binaireSearch() et de comparaison pour trier certaines données définies par l'utilisateur à l'aide d'opérations de recherche binaire via un comparateur

Exemple 1 : utilisez Collections, BinarySearch() pour rechercher des données dans une liste

import java.util.*;

public class Binarysearch {
   public static void main(String[] args){
      List<Domain> l1 = new ArrayList<Domain>();
      l1.add(new Domain(100, "India"));
      l1.add(new Domain(200, "Bangladesh"));
      l1.add(new Domain(300, "Dhaka"));
      l1.add(new Domain(400, "Kolkata"));

      Comparator<Domain> c = new Comparator<Domain>() {
      	 public int compare(Domain u1, Domain u2) {
            return u1.getId().compareTo(u2.getId());
      	 }
      };
      int index = Collections.binarySearch(	l1, new Domain(10, null), c);
      System.out.println("Found at index number zone" + index);
      index = Collections.binarySearch(l1, new Domain(6, null), c);
      System.out.println(index);
   }
}
class Domain {
   private int id;
   private String url;
   public Domain(int id, String url){
      this.id = id;
      this.url = url;
   }
   public Integer getId() { return Integer.valueOf(id); }
}
Copier après la connexion

Sortie

Found at index number zone-1
-1
Copier après la connexion

Exemple 2 : Trier la liste par ordre croissant

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ascendingsearch {
	public static void main(String[] args){
      List<Integer> ak = new ArrayList<integer>();
      ak.add(100);
      ak.add(200);
      ak.add(30);
      ak.add(10);
      ak.add(20);

      int index = Collections.binarySearch(ak, 100);
      System.out.println(index);
      index = Collections.binarySearch(ak, 130);
      System.out.println(index);
	}
}
</integer>
Copier après la connexion

Sortie

Note: ascendingsearch.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
-6
-6
Copier après la connexion

Exemple 3 : Triez la liste par ordre décroissant et trouvez le numéro d'index

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class binsearchdecend {
	public static void main(String[] args){
      List<Integer> a0710 = new ArrayList<Integer>();
      a0710.add(1000);
      a0710.add(500);
      a0710.add(300);
      a0710.add(10);
      a0710.add(2);
      int index = Collections.binarySearch(
      	a0710, 50, Collections.reverseOrder());

      System.out.println("Found at index number present " + index);
	}
}
Copier après la connexion

Sortie

Found at index number present -4
Copier après la connexion

Exemple 4 : Trouver le nombre d'éléments et de valeurs

import java.util.Scanner;
public class BinarySearchExample{
   public static void main(String args[]){
      int counter, num, item, array[], first, last, middle;
      Scanner input = new Scanner(System.in);
      System.out.println("Enter number of elements:");
      num = input.nextInt(); 
      array = new int[num];

      System.out.println("Enter " + num + " integers");
      for (counter = 0; counter < num; counter++)
          array[counter] = input.nextInt();

      System.out.println("Enter the search value:");
      item = input.nextInt();
      first = 0;
      last = num - 1;
      middle = (first + last)/2;

      while( first <= last ){
         if ( array[middle] < item )
           first = middle + 1;
         else if ( array[middle] == item ){
           System.out.println(item + " found at location " + (middle + 1) + ".");
           break;
         }
         else{
             last = middle - 1;
         }
         middle = (first + last)/2;
      }
      if ( first > last )
         System.out.println(item + " is not found.\n");
   }
}
Copier après la connexion

Sortie

Enter number of elements:
7
Enter 7 integers
10
12
56
42
48
99
100
Enter the search value:
50
50 is not found.
Copier après la connexion

Conclusion

Dans cet article, nous avons découvert l'interface comparable en Java avec quelques exemples de code et d'algorithmes. Ici, nous déclarons certaines classes et interfaces de comparaison définies par l'utilisateur. Ils répondent à des objectifs spécifiques et permettent de traiter des données spécifiques dans un environnement 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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le programme Java ouvre l'invite de commande et insère la commande Le programme Java ouvre l'invite de commande et insère la commande Aug 19, 2023 pm 12:29 PM

Cet article utilise différentes approches pour sélectionner les commandes insérées dans la fenêtre de commande ouverte via le code Java. La fenêtre de commande est ouverte en utilisant « cmd ». Ici, les méthodes pour faire la même chose sont spécifiées à l’aide du code Java. La fenêtre de commande est d’abord ouverte à l’aide du programme Java.

Programme Java utilisé pour vérifier si les étudiants du TPP sont éligibles aux entretiens Programme Java utilisé pour vérifier si les étudiants du TPP sont éligibles aux entretiens Sep 06, 2023 pm 10:33 PM

Veuillez consulter le tableau ci-dessous pour connaître les critères d'éligibilité des différentes entreprises - La traduction chinoise de CGPA est : GPA supérieur ou égal à 8 entreprises éligibles Google, Microsoft, Amazon, Dell, Intel, Wipro supérieur ou égal à 7 points de didacticiel, Accenture, Infosys, Emicon, Rellins supérieur ou égal à 6rtCamp, Cybertech, Skybags, Killer, Raymond supérieur ou égal à 5Patronics, Shoes, NoBrokers Entrons dans le programme Java pour vérifier l'éligibilité des étudiants tpp à un entretien. Méthode 1 : Utilisation de la condition ifelseif Normalement, lorsque nous devons vérifier plusieurs conditions, nous utilisons

Programme Java pour obtenir la taille d'un fichier donné en octets, kilo-octets et mégaoctets Programme Java pour obtenir la taille d'un fichier donné en octets, kilo-octets et mégaoctets Sep 06, 2023 am 10:13 AM

La taille d'un fichier est la quantité d'espace de stockage qu'un fichier spécifique occupe sur un périphérique de stockage spécifique, tel qu'un disque dur. La taille d'un fichier est mesurée en octets. Dans cette section, nous verrons comment implémenter un programme Java pour obtenir la taille d'un fichier donné en octets, kilo-octets et mégaoctets. Un octet est la plus petite unité d'information numérique. Un octet équivaut à huit bits. Un kilo-octet (Ko) = 1 024 octets, un mégaoctet (Mo) = 1 024 Ko, un gigaoctet (Go) = 1 024 Mo et un téraoctet (To) = 1 024 Go. La taille d'un fichier dépend généralement du type de fichier et de la quantité de données qu'il contient. En prenant un document texte comme exemple, la taille du fichier peut n'être que de quelques kilo-octets, tandis qu'un fichier image ou vidéo haute résolution peut être

Calculer les intérêts sur les dépôts à terme (FD) et les dépôts à terme (RD) à l'aide du programme Java hérité Calculer les intérêts sur les dépôts à terme (FD) et les dépôts à terme (RD) à l'aide du programme Java hérité Aug 20, 2023 pm 10:49 PM

L'héritage est un concept qui nous permet d'accéder aux propriétés et au comportement d'une classe à partir d'une autre classe. La classe qui hérite des méthodes et des variables membres est appelée une superclasse ou classe parent, et la classe qui hérite de ces méthodes et variables membres est appelée une sous-classe ou une sous-classe. En Java, nous utilisons le mot-clé "extends" pour hériter d'une classe. Dans cet article, nous discuterons d'un programme Java permettant de calculer les intérêts sur les dépôts à terme et les dépôts à terme en utilisant l'héritage. Tout d'abord, créez ces quatre fichiers Java - Acnt.java - dans l'IDE de votre machine locale. Ce fichier contiendra une classe abstraite « Acnt » qui est utilisée pour stocker les détails du compte tels que le taux d'intérêt et le montant. Il aura également une méthode abstraite 'calcIntrst' avec le paramètre 'amnt' pour calculer

Écrire un programme Java pour calculer l'aire et le périmètre d'un rectangle en utilisant le concept de classes Écrire un programme Java pour calculer l'aire et le périmètre d'un rectangle en utilisant le concept de classes Sep 03, 2023 am 11:37 AM

Le langage Java est aujourd’hui l’un des langages de programmation orientés objet les plus utilisés dans le monde. Le concept de classes est l’une des caractéristiques les plus importantes des langages orientés objet. Une classe est comme un modèle pour un objet. Par exemple, lorsque nous voulons construire une maison, nous créons d’abord un plan de la maison, en d’autres termes, nous créons un plan qui montre comment nous allons construire la maison. Selon ce plan, nous pouvons construire de nombreuses maisons. De même, en utilisant des classes, nous pouvons créer de nombreux objets. Les classes sont des plans pour créer de nombreux objets, où les objets sont des entités du monde réel telles que des voitures, des vélos, des stylos, etc. Une classe possède les caractéristiques de tous les objets, et les objets ont les valeurs de ces caractéristiques. Dans cet article, nous allons écrire un programme Java pour trouver le périmètre et les faces d'un rectangle en utilisant le concept de classes

Programme JAVA pour convertir des chiffres romains en nombres entiers Programme JAVA pour convertir des chiffres romains en nombres entiers Aug 25, 2023 am 11:41 AM

Chiffres romains – Basés sur l’ancien système romain qui utilise des symboles pour représenter les nombres. Ces nombres sont appelés chiffres romains. Les symboles sont I, V, X, L, C, D et M, qui représentent respectivement 1, 5, 10, 50, 100, 500 et 1 000. Entiers - Un entier est un entier composé de valeurs positives, négatives et nulles. Les fractions ne sont pas des nombres entiers. Ici, nous définissons la valeur du symbole en fonction de la valeur entière. Chaque fois qu'un chiffre romain est donné en entrée, nous le divisons en unités, puis calculons le chiffre romain approprié. I-1II–2III–3IV–4V–5VI–6…X–10XI–11..XV-15 Dans cet article, nous apprendrons comment convertir des chiffres romains en nombres entiers en Java. Montrez quelques exemples - Exemple 1InputR

Programme Java pour faire pivoter l'image Programme Java pour faire pivoter l'image Sep 01, 2023 pm 04:25 PM

Un fichier image peut être tourné dans le sens des aiguilles d’une montre ou dans le sens inverse. Pour faire pivoter une image, vous devez télécharger un fichier image aléatoire et l'enregistrer dans n'importe quel dossier de votre système. En outre, un fichier .pdf est requis et après avoir ouvert le fichier image téléchargé, un certain angle peut être pivoté dans ce fichier .pdf particulier. Pour une rotation de 90 degrés, les points d'ancrage de la nouvelle image peuvent nous aider à effectuer la rotation à l'aide de la transformation de traduction en Java. Le point d'ancrage est le centre de toute image particulière. Algorithme pour faire pivoter une image à l'aide de Java La classe "Affine Transform Op" est le moyen le plus simple de faire pivoter une image.

Programme Java pour créer des pyramides et des modèles Programme Java pour créer des pyramides et des modèles Sep 05, 2023 pm 03:05 PM

Si quelqu'un souhaite acquérir une base solide en langage de programmation Java. Ensuite, il faut comprendre comment fonctionne la boucle. De plus, résoudre les problèmes de modèle pyramidal est le meilleur moyen d’améliorer vos connaissances de base de Java, car cela inclut une utilisation intensive des boucles for et while. Cet article vise à fournir quelques programmes Java pour imprimer des modèles pyramidaux à l'aide de différents types de boucles disponibles en Java. Programme Java pour créer un motif de pyramide Nous imprimerons les modèles de pyramide suivants via le programme Java - Pyramide en étoiles inversée Pyramide en étoiles Pyramide des nombres Discutons-en un par un. Mode 1 : La méthode de la pyramide en étoiles inversée déclare et initialise un entier « n » avec le nombre de lignes spécifié. Ensuite, définissez le décompte initial de l'espace comme 0 et le décompte initial de l'étoile comme "n+

See all articles