1. 概述
在Java中,布尔(Boolean)是一种基础数据类型。通常,它只有两种可能的值:true
或 false
。
本教程将讨论如何初始化一个布尔值数组。
2. 问题介绍
问题相当简单:我们想要用相同的默认值初始化一个布尔变量数组。然而,Java有两种“不同”的布尔类型:原始类型(boolean
)和封装类型(Boolean
)。因此,在本文档中,我们将涵盖这两种情况,并讲解如何初始化boolean
和Boolean
类型的数组。为了简化,我们将使用单元测试断言来验证数组初始化是否符合预期。
接下来,我们从原始类型的boolean
开始。
3. 初始化原始boolean
数组
在Java中,原始变量都有默认值。例如,原始int
类型的变量默认值为0,而原始boolean
类型的变量默认为false
。
因此,如果我们想用全false
初始化一个boolean
数组,只需创建数组而不设置值即可。
现在,让我们编写一个测试来验证这一点:
boolean[] expected = { false, false, false, false, false };
boolean[] myArray = new boolean[5];
assertArrayEquals(expected, myArray);
运行上述测试,它会通过。我们可以看到,boolean[] myArray = new boolean[5];
在boolean
数组中初始化了五个false
元素。
值得一提的是,当我们根据值比较两个数组时,应该使用assertArrayEquals()
方法,而不是assertEquals()
。这是因为数组的equals()
方法检查的是两个数组的引用是否相同。
所以,初始化全为false
的原始boolean
数组很简单,我们可以利用boolean
的默认值。然而,有时我们可能希望创建一个全为true
的数组。在这种情况下,我们需要以某种方式将值设置为true
。当然,我们可以逐个设置或使用循环。但是,Arrays.fill()
方法让这个过程更轻松:
boolean[] expected = { true, true, true, true, true };
boolean[] myArray = new boolean[5];
Arrays.fill(myArray, true);
assertArrayEquals(expected, myArray);
再次运行测试,它会通过。于是,我们得到了一个全为true
的数组。
4. 初始化封装Boolean
数组
到目前为止,我们已经了解了如何用true
或false
初始化原始boolean
数组。现在,让我们看看在封装的Boolean
类型上进行相同操作的情况。
首先,与原始boolean
变量不同,封装的Boolean
变量没有默认值。如果不为其赋值,其值将是null
。因此,如果我们创建一个Boolean
数组而不设置元素的值,所有元素都将为null
。让我们编写一个测试来验证这一点:
Boolean[] expectedAllNull = { null, null, null, null, null };
Boolean[] myNullArray = new Boolean[5];
assertArrayEquals(expectedAllNull, myNullArray);
如果我们想用true
或false
初始化Boolean
数组,仍然可以使用Arrays.fill()
方法:
Boolean[] expectedAllFalse = { false, false, false, false, false };
Boolean[] myFalseArray = new Boolean[5];
Arrays.fill(myFalseArray, false);
assertArrayEquals(expectedAllFalse, myFalseArray);
Boolean[] expectedAllTrue = { true, true, true, true, true };
Boolean[] myTrueArray = new Boolean[5];
Arrays.fill(myTrueArray, true);
assertArrayEquals(expectedAllTrue, myTrueArray);
运行上述测试,它会通过。
5. 总结
在这篇简短的文章中,我们学习了如何在Java中初始化boolean
或Boolean
数组。如往常一样,所有示例的完整源代码可以在GitHub上找到。点击这里查看。