在Java中初始化布尔数组

2023/06/09

1. 概述

boolean是Java中的一种基本数据类型。通常,它只能有两个值,true或false。

在本教程中,我们将讨论如何初始化布尔值数组。

2. 问题简介

问题很简单。简单地说,我们想要初始化一个具有相同默认值的布尔变量数组。

但是,Java有两种“不同”的布尔类型,原始布尔值和包装布尔值。因此,在本教程中,我们将涵盖这两种情况并解决如何初始化boolean和Boolean数组。

此外,为简单起见,我们将使用单元测试断言来验证我们的数组初始化是否按预期工作。

那么接下来,让我们从原始布尔类型开始。

3. 初始化原始布尔数组

在Java中,原始变量具有默认值。例如,原始int变量的默认值为0,而原始boolean变量默认为false。

因此,如果我们想用所有false初始化一个布尔数组,我们可以简单地创建数组而不设置值

接下来,让我们创建一个测试来验证它:

boolean[] expected = { false, false, false, false, false };
boolean[] myArray = new boolean[5];
assertArrayEquals(expected, myArray);

如果我们运行上面的测试,它就会通过。正如我们所见,boolean[] myArray = new boolean[5]初始化布尔数组中的5个false元素。

值得一提的是,当我们想要根据两个数组的值来比较它们时,我们应该使用assertArrayEquals()方法而不是assertEquals()。这是因为数组的equals()方法会检查两个数组的引用是否相同。

因此,初始化原始false数组很容易,因为我们可以使用boolean的默认值。但是,有时,我们可能想要创建一个true值数组。如果是这种情况,我们必须以某种方式将值设置为true。当然,我们可以单独或在循环中设置它们。但是Arrays.fill()方法使这更容易:

boolean[] expected = { true, true, true, true, true };
boolean[] myArray = new boolean[5];
Arrays.fill(myArray, true);
assertArrayEquals(expected, myArray);

同样,如果我们运行它,测试就会通过。

4. 初始化包装布尔数组

到目前为止,我们已经学习了如何用true或false初始化原始布尔值数组。现在,让我们看看包装布尔类型方面的相同操作。

首先,与原始布尔变量不同,包装布尔变量没有默认值。如果我们不为其设置值,则其值为null。因此,如果我们创建一个Boolean数组而不设置元素的值,则所有元素都是null。让我们创建一个测试来验证它:

Boolean[] expectedAllNull = { null, null, null, null, null };
Boolean[] myNullArray = new Boolean[5];
assertArrayEquals(expectedAllNull, myNullArray);

如果我们想用true或false初始化布尔数组,我们仍然可以使用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上获得。

Show Disqus Comments

Post Directory

扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章