question: private void readObject ( ObjectInputStream ois ) throws ClassNotFoundException , IOException { ois . defaultReadObject ( ) ; int size = ois . readInt ( ) ; index = new ConcurrentHashIndex < > ( size ) ; for ( int i = 0 ; i < size ; ++ i ) { index . add ( ois . readUTF ( ) ) ; } }
target:  Custom deserializer. This is possible since the Index is guaranteed to assign contiguous values.