簡體   English   中英

Java有效存儲大量排序數據

[英]Java efficiently store large amount of sorted data

通常,當我想在Java中存儲大量數據時,我使用Set<String> ,它非常快速且高效。

 Set<String> example = new HashSet<String>();

但是問題是它無法排序。 我不能使用Lists因為我要存儲大量數據(100,000個數據),並且使用List會嚴重影響程序性能。

ArrayList<String> example = new ArrayList<String>()

還有另一種方法嗎? 我需要對我的數據進行排序(按日期),並且新元素會不斷添加到List

您可以使用TreeSet,它是Set的實現。
它使用可比較的自然順序或給定的比較器對元素進行排序。

設置示例= new TreeSet();

在這里檢查api

您可以使用TreeSet! 使用TreeSet並一一添加值。 當您獲取值時,它將為您提供數據的排序值。

如果您只是想以排序形式保存數據,那么最有效的解決方案是:

  1. 將數據加載到ArrayList
  2. 復制到數組。
  3. 使用Arrays.sort對數組進行排序。
  4. 要進行搜索,請使用O(logN) “二進制搜索”。

如果您希望能夠構建散布的構建和搜索,請使用TreeSet。 這將使用更多的內存,但是對於增量構建的集合,它將更快,並且搜索性能將大致相同。

暫無
暫無

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

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