Вам нужно пройти объекты, используя отражение. Будьте осторожны, как и вы:
byte
теоретически 1 байт не означает, что он занимает только один в памяти. HashMap
или somesuch с использованием объектных равных в качестве компаратора для исключения бесконечных циклов. @jodonnell: Мне нравится простота вашего решения, но многие объекты не являются Serializable (поэтому это порождает исключение), поля могут быть временными, а объекты могут переопределять стандартные методы.