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.
Sebelum memasuki program, mari kenali beberapa konsep dahulu
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.
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.
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.
compareTo(nameOfclass nameOfobject);
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.
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 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()); } }
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
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!