Maison  >  Article  >  Java  >  Utilisez la logique de tri de TreeSet en Java pour obtenir les éléments maximum et minimum de l'ensemble

Utilisez la logique de tri de TreeSet en Java pour obtenir les éléments maximum et minimum de l'ensemble

WBOY
WBOYavant
2023-09-02 12:33:07969parcourir

Utilisez la logique de tri de TreeSet en Java pour obtenir les éléments maximum et minimum de lensemble

TreeSet est une classe de Java Collection Framework qui implémente l'interface SortedSet. Il stocke les éléments par ordre croissant et n'autorise pas les valeurs en double, ce qui rend les temps d'accès et de récupération plus rapides. En raison de cette excellente fonctionnalité, les TreeSets sont souvent utilisés pour stocker de grandes quantités d’informations qui doivent être recherchées rapidement. Nous utiliserons l'interface Comparable pour trier un TreeSet donné, puis, à l'aide de méthodes intégrées, essaierons d'obtenir les éléments de valeur la plus élevée et la plus basse de ce TreeSet.

Programme Java pour obtenir les éléments de valeur la plus élevée et la plus faible de TreeSet

Avant d'entrer dans le programme, familiarisons-nous d'abord avec quelques concepts

Interface similaire

Cette interface est utile lorsque nous souhaitons trier des objets personnalisés dans leur ordre naturel. Par exemple, il trie les chaînes lexicographiquement et les nombres numériquement. Cette interface est disponible dans le package "java.lang". De manière générale, les classes et interfaces définies dans ce package sont disponibles par défaut, il n'est donc pas nécessaire d'importer explicitement ce package.

Grammaire

class nameOfclass implements Comparable<nameOfclass>

Ici, class est le mot-clé pour créer une classe, et Implements est le mot-clé qui permet d'utiliser les fonctions fournies par l'interface.

compareTo()

L'interface Comparable définit uniquement une méthode appelée "CompareTo" qui peut être remplacée pour trier une collection d'objets. Il offre la possibilité de comparer les objets d’une classe avec elle-même. Renvoie 0 lorsque l'objet "this" est égal à l'objet passé, une valeur positive si l'objet "this" est supérieur et une valeur négative dans le cas contraire.

Grammaire

compareTo(nameOfclass nameOfobject);

Méthodes last() et first()

Les deux méthodes sont utilisées avec les objets TreeSet et ne prennent aucun paramètre. La méthode 'last()' renvoie l'élément de fin du TreeSet spécifié et la méthode 'first()' renvoie l'élément à la première position. Puisqu'un TreeSet stocke ses éléments par ordre croissant, le dernier élément est considéré comme l'élément de valeur la plus élevée et vice versa comme l'élément de valeur la plus faible.

Méthode

  • Tout d'abord, importez le package « java.util » pour que nous puissions utiliser TreeSet

  • Créez une classe "Cart" qui implémente une interface comparable. Dans celui-ci, déclarez deux variables et définissez le constructeur de la classe et les deux paramètres "item" et "price" de type chaîne et entier respectivement.

  • Définissez la méthode "compareTo" avec un objet de la classe "Cart" comme paramètre pour comparer l'objet "this" avec l'objet nouvellement créé.

  • Maintenant, dans la méthode main(), déclarez un objet nommé « trSet » de la classe « Cart » de type de collection TreeSet et stockez les détails de l'objet dans la collection à l'aide de la méthode intégrée nommée « add() ».

  • Enfin, appelez les méthodes intégrées "last()" et "first()" pour obtenir respectivement les valeurs les plus élevées et les plus basses.

Exemple

L'exemple suivant montre comment trouver les éléments de valeur la plus élevée et la plus basse d'un TreeSet.

import java.util.*;
public class Cart implements Comparable <Cart> {
   String item;
   int price;
   Cart(String item, int price) { // constructor
      // this keyword shows these variables belong to constructor
      this.item = item;
      this.price = price;
   }
   // overriding method
     public int compareTo(Cart comp) {
      if(this.price > comp.price) { // performing comparison
         return 1;
      } else {
         return -1;
      }
   }
   public String toString() {
      return "Item: " + this.item + ", Price: " + this.price;
   }
   public static void main(String[] args) {
      // Declaring collection TreeSet
      TreeSet <Cart> trSet = new TreeSet <Cart>();
      // Adding object to the collection
      trSet.add(new Cart("Rice", 59));
      trSet.add(new Cart("Milk", 60));
      trSet.add(new Cart("Bread", 45));
      trSet.add(new Cart("Peanut", 230));
      trSet.add(new Cart("Butter", 55));
      // to print the objects
      for (Cart print : trSet) {
         System.out.println("Item: " + print.item + ", " + "Price: " + print.price);
      }
      // calling in-built methods to print required results
      System.out.println("Element having highest value: " + trSet.last());
      System.out.println("Element having lowest value: " + trSet.first());
   }
}

Sortie

Item: Bread, Price: 45
Item: Butter, Price: 55
Item: Rice, Price: 59
Item: Milk, Price: 60
Item: Peanut, Price: 230
Element having highest value: Item: Peanut, Price: 230
Element having lowest value: Item: Bread, Price: 45

Conclusion

Nous avons d'abord défini la classe TreeSet de Java Collection Framework et dans la section suivante, nous avons trouvé l'interface Comparable et quelques méthodes intégrées qui nous aident à obtenir les éléments de valeur la plus élevée et la plus basse de l'ensemble en utilisant la logique de tri sur le TreeSet.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer