Programming Pearls - Find the Missing Integer!

or the byte, does not matter really!

This is my first take on the Missing Integer question from the Programming Pearls book. I am not really looking for the missing integer, but rather the missing byte in my first take..
import java.util.ArrayList;
import java.util.List;
 
public class Main {
 
    private static List<Byte> initial = new ArrayList<>();
 
    static {
        for (int i = -128; i < 128; i++) {
            if (i != 55) {
                initial.add((byte) i);
            }
        }
    }
 
    private static byte[] checkBytes = new byte[8];
 
    static {
        checkBytes[0] = ((byte) -128); // 1000_0000
        checkBytes[1] = ((byte) 64); // 0100_0000
        checkBytes[2] = ((byte) 32); // 0010_0000
        checkBytes[3] = ((byte) 16); // 0001_0000
        checkBytes[4] = ((byte) 8);
        checkBytes[5] = ((byte) 4);
        checkBytes[6] = ((byte) 2);
        checkBytes[7] = ((byte) 1);
    }
 
    private static List<Byte> spare_01 = new ArrayList<>();
    private static List<Byte> spare_02 = new ArrayList<>();
 
    public static void main(String[] args) {
 
        segregateBytesAgainstACheckByte(checkBytes[0], initial);
 
        printBitValueOfMissingInteger();
 
        for (int i = 1; i < 8; i++) {
            final List<Byte> smallerList = getSmallerList(spare_01, spare_02);
            spare_01.clear();
            spare_02.clear();
            segregateBytesAgainstACheckByte(checkBytes[i], smallerList);
            printBitValueOfMissingInteger();
        }
    }
 
    private static void segregateBytesAgainstACheckByte(final byte byteToCheckAgainst, 
                                                        final List<Byte> bytesToSegregate) {
        for (byte b : bytesToSegregate) {
            if ((byteToCheckAgainst & b) == 0) {
                spare_01.add(b);
            } else {
                spare_02.add(b);
            }
        }
    }
 
    private static void printBitValueOfMissingInteger() {
        if (spare_01.size() < spare_02.size()) {
            System.out.print("0");
        } else {
            System.out.print("1");
        }
    }
 
    private static List<Byte> getSmallerList(List<Byte> spare_01, List<Byte> spare_02) {
        final ArrayList<Byte> bytes = new ArrayList<>();
        if (spare_01.size() <= spare_02.size()) {
            bytes.addAll(spare_01);
        } else {
            bytes.addAll(spare_02);
        }
        return bytes;
    }
}

And the output will be..
00110111

which equals: 55!