我有一個ArrayList填充了矩形。我想將內容添加到Map中,其中Key將是X座標,值是具有相同X線的List。不兼容的類型,同時給地圖添加值
我可以通過具有功能
void dummyFun(List<Rectangle> listRects)
{
Map<Integer, List<Rectangle>> mapSameXCordRectangles = new HashMap<>();
listRects.forEach((Rectangle table) ->
{
if(mapSameXCordRectangles.containsKey(table.x))
{
mapSameXCordRectangles.get(table.x).add(table);
}
else
{
List<Rectangle> lstRect = new ArrayList<>();
lstRect.add(table);
mapSameXCordRectangles.put(table.x, lstRect);
}
});
}
做到這一點,但我想刪除的if-else語句,像下面。
void dummyFun1(List<Rectangle> listRects)
{
Map<Integer, List<Rectangle>> mapSameXCordRectangles = new HashMap<>();
List<Rectangle> lstTemp = new ArrayList<>();
listRects.forEach((Rectangle table) ->
{
mapSameXCordRectangles.put(table.x,mapSameXCordRectangles.containsKey(table.x) ? mapSameXCordRectangles.get(table.x).add(table): new ArrayList<>().add(table));
});
}
當我這樣做,我得到錯誤,因爲布爾值不能轉換爲列表。 當我添加新的Rectangle到地圖中的ArrayList或創建新的ArrayList時,它返回布爾值而不是我希望它返回ArrayList。
我該怎麼做。
感謝您的建議。 – nandeesh
不客氣。 – GhostCat