簡體   English   中英

從具有不同排序標准的樹集中獲取元素的有效方法

[英]Efficient way to get elements out of a treeset with different sorting criteria

我有一個包含學生對象(名稱,卷編號,地址和年齡)的樹集,並按其名稱的升序存儲,如果名稱相同,則卷編號。 此列表來自文件,可能會變得很大。

現在,我必須提供一種顯示列表的方式,該列表可以按任何順序-根據名稱,年齡,地址或卷號以升序/降序排序。 我正在尋找解決我問題的有效方法。

我正在考慮做的是獲取一個臨時arraylist並按我想要的順序將元素放入其中。 但是為此,我將不得不為每個標准實施不同的方法,這對我而言似乎效率很低。

有什么辦法可以讓樹集中的元素以我想要進入數組的方式,因為我只需要打印值並隨后銷毀臨時列表即可

如您所說,唯一的方法是遍歷樹並將所有匹配的元素拉出到ArrayList中。 完成后,您可以根據特定的比較器進行排序。

如果只想根據自然順序提取元素,則可以使用子集方法,但這取決於樹中的compareTo方法,該方法對於要執行的所有不同搜索均無效。

鑒於此,為什么首先要使用TreeSet? 您的元素是否具有TreeSet可利用的自然順序? 如果不是,為什么不將它們全部轉儲到ArrayList中,並根據需要對ArrayList進行排序?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM