我需要將兩個值保存到ArrayList的一個單元格中。馬上,我要通過列表並總結數值。將數據存儲到Arraylist的最佳方法是什麼?地圖? 我想是這樣的:Java - collections List <Map <Integer,Integer >>
List<Map<Integer, Integer>>
但我有時我需要KEY,有時價值,這是相當困難的,讓他們。 有更簡單的方法嗎?
我需要將兩個值保存到ArrayList的一個單元格中。馬上,我要通過列表並總結數值。將數據存儲到Arraylist的最佳方法是什麼?地圖? 我想是這樣的:Java - collections List <Map <Integer,Integer >>
List<Map<Integer, Integer>>
但我有時我需要KEY,有時價值,這是相當困難的,讓他們。 有更簡單的方法嗎?
如果您需要將兩個值作爲一個單位存儲,那麼編寫一個類包含兩個int
字段,並進行適當的命名。例如,如果你的兩個int
值代表x和y座標,寫一個類
class Point {
private int x;
private int y;
...
}
...然後使用ArrayList<Point>
。
你只是試圖在數組列表的每個插槽中存儲一個元組(即兩個值)嗎?
做到這一點簡單的辦法是要麼有一個元組類(getFirst(),getSecond()) - 或者,如果你希望它是快速和骯髒,存儲大小爲2的數組:
List<int[]> list = new ArrayList<int[]>();
list.add(new int[]{1, 2});
如果這不是你想要做的,請提供一些說明。
這也是如何做到這一點,但恕我直言,創建新的類與getter和setter更好。感謝您的想法。 – user3414654
如果您需要爲特定的鍵多個值,
Map<Integer, List<Integer>>
檢查(Guava's Multimap)。你可以找到相當不錯的類或實用類來進行轉換。
如果這是不適合你,你的定義並不壞,但如果有一個鍵值對,這可能是更好:
List<Map.Entry<Integer, Integer>>
進入裏面的地圖簡單的內部類,存儲鍵/值對。 此外,如果你堅持你的方法(可能是複雜的),或者切換到入口,它不是很難改變(你總是需要密鑰或總是隻值情況。
List<Entry<Integer, Integer>> values; // filled, initialised
// Getting only Keys
values.stream().map(Entry::getKey); // Java8 stuff - method reference
// Getting only Values
values.stream().map(Entry::getValue); // Java8 stuff - method reference
這裏瞭解method reference
也許在Arraylist中保存一個整數? – ederollora