我正在連接到非常不靈活的套接字API。它會返回如下行:數組中項目的Java計數(類似於SQL聚合函數)
NAME, CITY, STATE, JOB, MONTH
但會有重複,因爲它不會做任何聚合。我需要計算重複的行(這在SQL中非常簡單,但據我所知,在Java中不是那麼容易)。
示例源數據:
NAME, CITY, STATE, JOB, MONTH
John Doe, Denver, CO, INSTALLATION, 090301
John Doe, Denver, CO, INSTALLATION, 090301
John Doe, Denver, CO, INSTALLATION, 090301
Jane Doe, Phoenix, AZ, SUPPORT, 090301
預期:
NAME, CITY, STATE, JOB, MONTH, COUNT
John Doe, Denver, CO, INSTALLATION, 090301, 3
Jane Doe, Phoenix, AZ, SUPPORT, 090301, 1
我可以很容易地做到這一點的約10萬回行,但我處理在一個月約60萬美元。有任何想法嗎?
編輯:不幸的是,行不返回的有序......也沒有通過API的選項排序。我得到了這些需要彙總的東西。現在我使用一個ArrayList並執行indexOf(新行)來查找該項是否已經存在,但是它的行越多,它越慢。
編輯:爲了澄清,這將只需要每個月運行一次,在月底。感謝您對所有的答覆
幾乎正是我想要建議的。 – 2009-11-07 04:27:35
考慮到OP需要處理的數據集的大小,將所有行存儲在「HashSet」中可能會導致出現OutOfMemoryException。 – Asaph 2009-11-07 04:30:56
我會在星期一嘗試這個......看起來就像我在找什麼。我最大的問題是它的速度變慢了...... HashSet應該快得多...... – jle 2009-11-07 04:53:39