簡體   English   中英

首先按值對鍵值對進行排序,然后按鍵進行排序。 (類似於Radix Sort)。 我需要保持鍵值關系

[英]Sort key-value pairs first by Value and then by Key. (similar to Radix Sort). I need to maintain the key-value relationship

我正在嘗試從鍵值對中刪除重復項。 首先對數據進行排序似乎是最好的方法。 我有元組(兩個值都是整數)所以代碼不一定必須適用於不同的對象,如果它可以針對整數進行優化,那將是很好的。 我想首先按Value排序所有對,然后按Key排序(請注意,在保持鍵值關系時我需要兩個操作)

我是Java新手,我想知道在Map(或者我可以使用的任何其他數據結構)中是否存在可以為我執行此操作的排序方法。 由於我使用的數據集很大(> 50GB),我必須盡可能節省時間。 我試過簡單地將所有對添加到一個Set(作為兩個整數的串聯字符串)然后將它們取出,但它需要太長時間。 如果需要,我願意切換到外部排序算法(我使用的是64 GB內存pc,所以任何需要超過O(n)空間的東西都會有問題)

好吧,您可以通過將這些數據存儲到TreeMap來排序和消除重復。 TreeMapMap一個實現,其中TreeMap中的鍵使用它們的自然順序進行排序 我們可以實現Comparable<Data_Type>並覆蓋public int compareTo(T t)來定義排序順序。

由於這不是多鍵哈希,因此Map中只能存在一個鍵。 因此,重復的實體將被自動覆蓋。

看看這個鏈接: 用Java排序HashMap

暫無
暫無

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

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