Rumah  >  Artikel  >  Java  >  Gunakan logik pengisihan TreeSet dalam Java untuk mendapatkan elemen maksimum dan minimum dalam set

Gunakan logik pengisihan TreeSet dalam Java untuk mendapatkan elemen maksimum dan minimum dalam set

WBOY
WBOYke hadapan
2023-09-02 12:33:07969semak imbas

Gunakan logik pengisihan TreeSet dalam Java untuk mendapatkan elemen maksimum dan minimum dalam set

TreeSet ialah kelas dalam Rangka Kerja Koleksi Java yang melaksanakan antara muka SortedSet. Ia menyimpan elemen dalam tertib menaik dan tidak membenarkan nilai pendua, jadi masa akses dan perolehan menjadi lebih pantas. Kerana fungsi yang sangat baik ini, TreeSets sering digunakan untuk menyimpan sejumlah besar maklumat yang perlu dicari dengan cepat. Kami akan menggunakan antara muka Sebanding untuk mengisih TreeSet yang diberikan dan kemudian, menggunakan kaedah terbina dalam, cuba dapatkan elemen nilai tertinggi dan terendah daripada TreeSet itu.

Program Java untuk mendapatkan elemen nilai tertinggi dan terendah daripada TreeSet

Sebelum memasuki program, mari kenali beberapa konsep dahulu

Antara muka yang serupa

Antara muka ini berguna apabila kita ingin mengisih objek tersuai dalam susunan semula jadinya. Sebagai contoh, ia menyusun rentetan secara leksikografi dan nombor secara berangka. Antara muka ini tersedia dalam pakej "java.lang". Secara umumnya, kelas dan antara muka yang ditakrifkan dalam pakej ini tersedia kepada kami secara lalai, jadi tidak perlu mengimport pakej ini secara eksplisit.

Tatabahasa

class nameOfclass implements Comparable<nameOfclass>

Di sini, kelas ialah kata kunci untuk mencipta kelas, dan implement ialah kata kunci yang membenarkan penggunaan fungsi yang disediakan oleh antara muka.

compareTo()

Antara muka Sebanding hanya mentakrifkan kaedah yang dipanggil "CompareTo" yang boleh ditindih untuk mengisih koleksi objek. Ia menyediakan keupayaan untuk membandingkan objek kelas dengan dirinya sendiri. Mengembalikan 0 apabila objek "ini" sama dengan objek yang dilalui, nilai positif jika objek "ini" lebih besar dan nilai negatif sebaliknya.

Tatabahasa

compareTo(nameOfclass nameOfobject);

kaedah terakhir() dan pertama()

Kedua-dua kaedah digunakan dengan objek TreeSet dan tidak mengambil parameter. Kaedah 'last()' mengembalikan elemen akhir TreeSet yang ditentukan, dan kaedah 'first()' mengembalikan elemen pada kedudukan pertama. Memandangkan TreeSet menyimpan elemennya dalam tertib menaik, elemen terakhir dianggap sebagai elemen nilai tertinggi dan sebaliknya sebagai elemen nilai terendah.

Kaedah

  • Mula-mula, import pakej "java.util" supaya kami boleh menggunakan TreeSet

  • Buat "Cart" kelas yang melaksanakan Antara Muka Setanding. Di dalamnya mengisytiharkan dua pembolehubah dan menentukan pembina kelas dan dua parameter "item" dan "harga" jenis rentetan dan integer masing-masing.

  • Tentukan kaedah "compareTo" bersama-sama dengan objek kelas "Cart" sebagai parameter untuk membandingkan objek "ini" dengan objek yang baru dibuat.

  • Kini, dalam kaedah main(), isytiharkan objek bernama "trSet" kelas "Cart" jenis koleksi TreeSet dan simpan butiran objek ke koleksi menggunakan kaedah terbina bernama "add()".

  • Akhir sekali, panggil kaedah terbina dalam "last()" dan "first()" untuk mendapatkan nilai tertinggi dan terendah masing-masing.

Contoh

Contoh berikut menunjukkan cara mencari elemen nilai tertinggi dan terendah daripada 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());
   }
}

Output

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

Kesimpulan

Kami mula-mula menentukan kelas TreeSet Rangka Kerja Koleksi Java dan dalam bahagian seterusnya, kami menemui antara muka Sebanding dan beberapa kaedah terbina yang membantu kami mendapatkan elemen nilai tertinggi dan terendah daripada Set menggunakan logik pengisihan pada TreeSet.

Atas ialah kandungan terperinci Gunakan logik pengisihan TreeSet dalam Java untuk mendapatkan elemen maksimum dan minimum dalam set. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam