TreeSet 是 Java Collection Framework 中的一個類,它實作了 SortedSet 介面。它按升序儲存元素,並且不允許重複值,因此存取和檢索時間變得更快。由於這個出色的功能,TreeSet 經常用於儲存需要快速搜尋的大量資訊。我們將使用 Comparable 介面對給定的 TreeSet 進行排序,然後使用內建方法,嘗試取得最高和最低值的元素來自該 TreeSet。
在進入程式之前,讓我們先熟悉一些概念
當我們想要按自訂物件的自然順序對它們進行排序時,此介面非常有用。例如,它按字典順序對字串進行排序,並按數字順序對數字進行排序。該介面在“java.lang”套件中可用。一般來說,這個包中定義的類別和介面預設可供我們使用,因此沒有必要明確導入這個包。
class nameOfclass implements Comparable<nameOfclass>
這裡,class 是建立類別的關鍵字,implements 是允許使用介面提供的功能的關鍵字。
Comparable 介面僅定義了一個名為「CompareTo」的方法,可以覆寫該方法以對物件集合進行排序。它提供了將類別的物件與其自身進行比較的能力。當「this」物件等於傳遞的物件時傳回0,如果「this」物件大於則傳回正值,否則傳回負值。
compareTo(nameOfclass nameOfobject);
這兩個方法都與 TreeSet 物件一起使用,並且不帶任何參數。 ‘last()’方法傳回指定TreeSet的結束元素,‘first()’方法傳回第一個位置的元素。由於 TreeSet 按升序儲存其元素,因此最後一個元素被視為最高值元素,反之亦然是最低值元素。
首先,導入「java.util」包,以便我們可以使用 TreeSet
建立一個實作 Comparable Interface 的類別「Cart」。在其中宣告兩個變數並定義該類別的建構函式以及分別為字串和整數類型的兩個參數“item”和“price”。
定義「compareTo」方法以及「Cart」類別的物件作為參數,以將「this」物件與新建立的物件進行比較。
現在,在main() 方法中,宣告集合類型TreeSet 的類別「Cart」的名為「trSet」的對象,並使用名為「add()」的內建方法將物件的詳細信息儲存到集合。
最後,呼叫內建方法「last()」和「first()」分別取得最高值和最低值。
以下範例示範如何從 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
我們首先定義了Java Collection Framework 的TreeSet 類,在下一節中,我們發現了Comparable 介面和一些內建方法,它們幫助我們使用TreeSet 上的排序邏輯從Set 中取得最高和最低值元素.
以上是使用Java中TreeSet的排序邏輯來取得集合中的最大值與最小值元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!