我在java中有兩個相同的數組列表,每個列表都有一個字符串值和一個整數。現在我必須將這些數組列表合併爲一個數組,如果該數值存在,我將只增加計數,如果該數值不存在,那麼我只需將數值和計數相加即可。在java中合併兩個ArrayList
問題是,無論如何,我可以優雅地做到這一點,而不是在for循環中迭代,如果檢查每個值?
我在java中有兩個相同的數組列表,每個列表都有一個字符串值和一個整數。現在我必須將這些數組列表合併爲一個數組,如果該數值存在,我將只增加計數,如果該數值不存在,那麼我只需將數值和計數相加即可。在java中合併兩個ArrayList
問題是,無論如何,我可以優雅地做到這一點,而不是在for循環中迭代,如果檢查每個值?
你不能,有太多的自定義邏輯。迭代,檢查和添加 - 這是最好的方法,並且會更具可讀性。
從技術上講,你可以使用番石榴的Multiset
,但是那裏的數量由集合本身來處理,而不是你,所以它可能需要更多的工作。
問題是,有無論如何,我可以做到這一點,而不是 迭代在for循環,如果檢查每個值?
簡短的回答是否定的。
你會更好地使用HashMap作爲容器,至少合併操作會更快。無論如何你都需要一個循環。 (因爲沒有addAll/putAll可以更新你的計數)。
你可以給一些示例輸入/輸出對嗎?你的問題有點含糊,這可能會清除一點 – mfrankli 2012-04-12 05:44:56
使用Collection.addAll方法。 – adatapost 2012-04-12 05:45:47
地圖可以用於這樣的任務。 – 2012-04-12 05:45:51