使用2D布尔数组作为值的Java映射

时间:2011-01-13 23:38:43

标签: java map

你好假设我有一个hashmap

HashMap<Integer,boolean[][]> map= new HashMap();

如何在二维数组中的地图上放置true或false值

4 个答案:

答案 0 :(得分:3)

HashMap<Integer, boolean[][]> map = new HashMap();
int rowNumber = 1;
boolean[][] array2D = map.get(rowNumber);
array2D[10][20] = true;

答案 1 :(得分:2)

//First get the boolean array if it exists.
boolean[][] value = map.get(key);
//If it doesn't exist in the map yet, instantiate it.
if(value == null){
  value = new boolean[size1][size2];
  map.put(key,value);
}
//Set the boolean value in the array at the correct location
value[index1][index2] = booleanValue;

根据需要填写键,booleanValue,大小和索引。

答案 2 :(得分:1)

如果我错了,请纠正我,但似乎你想在地图中直接放置布尔值。你设置它的方式,你的地图不是由布尔值组成,而是由布尔数组组成。

这就是为什么你不能只放map.put(key, true)因为true不属于boolean[][]类型,它只是一个简单的香草布尔值。您可能会遇到某种类型的不匹配错误,因为除非您告诉计算机将布尔值放在数组中,否则boolean不能神奇地成为数组。

如果您真的打算制作一个每个铲斗都装有2D阵列的地图,那么rfeak的答案将解决您的问题。

答案 3 :(得分:0)

你的意思是这样吗?

int index, row, col = ....
Boolean[][] array = map.get(index);
array[row][col] = true/false;