diff --git a/java-numbers-4/pom.xml b/java-numbers-4/pom.xml
index 40fe17cc0d..4750b58511 100644
--- a/java-numbers-4/pom.xml
+++ b/java-numbers-4/pom.xml
@@ -23,7 +23,6 @@
org.apache.commons
commons-lang3
${commons-lang3.version}
- test
com.google.guava
diff --git a/java-numbers-4/src/main/java/com/baeldung/booleantoint/BooleanToInt.java b/java-numbers-4/src/main/java/com/baeldung/booleantoint/BooleanToInt.java
new file mode 100644
index 0000000000..3cca1592fb
--- /dev/null
+++ b/java-numbers-4/src/main/java/com/baeldung/booleantoint/BooleanToInt.java
@@ -0,0 +1,42 @@
+package com.baeldung.booleantoint;
+
+import org.apache.commons.lang3.BooleanUtils;
+
+public class BooleanToInt {
+ public static int booleanPrimitiveToInt(boolean foo) {
+ int bar = 0;
+ if (foo) {
+ bar = 1;
+ }
+ return bar;
+ }
+
+ public static int booleanPrimitiveToIntTernary(boolean foo) {
+ return (foo) ? 1 : 0;
+ }
+
+ public static int booleanObjectToInt(boolean foo) {
+ return Boolean.compare(foo, false);
+ }
+
+ public static int booleanObjectToIntInverse(boolean foo) {
+ return Boolean.compare(foo, true) + 1;
+ }
+
+ public static int booleanObjectMethodToInt(Boolean foo) {
+ return foo.compareTo(false);
+ }
+
+ public static int booleanObjectMethodToIntInverse(Boolean foo) {
+ return foo.compareTo(true) + 1;
+ }
+
+ public static int booleanUtilsToInt(Boolean foo) {
+ return BooleanUtils.toInteger(foo);
+ }
+
+ public static int bitwiseBooleanToInt(Boolean foo) {
+ return (Boolean.hashCode(foo) >> 1) & 1;
+ }
+}
+
diff --git a/java-numbers-4/src/test/java/com/baeldung/booleantoint/BooleanToIntUnitTest.java b/java-numbers-4/src/test/java/com/baeldung/booleantoint/BooleanToIntUnitTest.java
new file mode 100644
index 0000000000..032eb1d28c
--- /dev/null
+++ b/java-numbers-4/src/test/java/com/baeldung/booleantoint/BooleanToIntUnitTest.java
@@ -0,0 +1,55 @@
+package com.baeldung.booleantoint;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class BooleanToIntUnitTest {
+ @Test
+ void givenBooleanPrimitiveValue_ThenReturnInt() {
+ assertEquals(1, BooleanToInt.booleanPrimitiveToInt(true));
+ assertEquals(0, BooleanToInt.booleanPrimitiveToInt(false));
+ }
+
+ @Test
+ void givenBooleanPrimitiveValue_ThenReturnIntTernary() {
+ assertEquals(1, BooleanToInt.booleanPrimitiveToIntTernary(true));
+ assertEquals(0, BooleanToInt.booleanPrimitiveToIntTernary(false));
+ }
+
+ @Test
+ void givenBooleanObject_ThenReturnInt() {
+ assertEquals(0, BooleanToInt.booleanObjectToInt(false));
+ assertEquals(1, BooleanToInt.booleanObjectToInt(true));
+ }
+
+ @Test
+ void givenBooleanObject_ThenReturnIntInverse() {
+ assertEquals(0, BooleanToInt.booleanObjectToIntInverse(false));
+ assertEquals(1, BooleanToInt.booleanObjectToIntInverse(true));
+ }
+
+ @Test
+ void givenBooleanObject_ThenReturnIntUsingClassMethod() {
+ assertEquals(0, BooleanToInt.booleanObjectMethodToInt(false));
+ assertEquals(1, BooleanToInt.booleanObjectMethodToInt(true));
+ }
+
+ @Test
+ void givenBooleanObject_ThenReturnIntUsingClassMethodInverse() {
+ assertEquals(0, BooleanToInt.booleanObjectMethodToIntInverse(false));
+ assertEquals(1, BooleanToInt.booleanObjectMethodToIntInverse(true));
+ }
+
+ @Test
+ void givenBoolean_ThenReturnIntUsingBooleanUtils() {
+ assertEquals(0, BooleanToInt.booleanUtilsToInt(false));
+ assertEquals(1, BooleanToInt.booleanUtilsToInt(true));
+ }
+
+ @Test
+ void givenBoolean_ThenReturnIntUsingBitwiseOperators() {
+ assertEquals(0, BooleanToInt.bitwiseBooleanToInt(false));
+ assertEquals(1, BooleanToInt.bitwiseBooleanToInt(true));
+ }
+}