给定Java中的几个数组(我将循环通过当前存储在HashMap中的键),我希望能够识别(基于当前存储的boolean []键)哪些索引在所有索引中都是真的,哪些是假.
例:
{true,true,false}
{true,false,false}
将索引0作为具有所有真值,并将索引2作为具有所有假值.
我的一个想法是将布尔数组转换为整数数组,对值求和,如果求和数组索引= numArrays,则所有这些都是True.类似地,如果求和的数组索引为0,则它们全部为假.
我不知道如何以有效的方式(在java中)这样做,如果这是一个很好的方法来实现我想要的结果.
有没有办法将布尔数组转换为整数?如果没有,是最简单的替代实例化一个新的int数组,并循环通过布尔数组来填充新数组?
最佳答案
假设所有数组都具有相同数量的元素,您可以尝试这样做:
public static void main(String[] args) {
boolean[] array1 = new boolean[] {true,false};
boolean[] array2 = new boolean[] {true,false};
boolean[] array3 = new boolean[] {true,false};
boolean[] array4 = new boolean[] {true,false};
compareAndPrintCommonIndicesForArrays(array1,array2,array3);
}
public static boolean compareAndPrintCommonIndicesForArrays(boolean[] ...arrays) {
boolean result =true;
boolean itemToCompare;
int elementsToCompare = arrays[0].length;
for(int itemIndex=0; itemIndex
它打印:
0
2
代码将遍历所有索引,并且对于每个索引,它将比较该索引处的所有数组中的元素.如果它们全部相同则打印索引.