code: static <K, V> void populateMultimap(
        Multimap<K, V> multimap, ObjectInputStream stream, int distinctKeys)
        throws IOException, ClassNotFoundException {
      for (int i = 0; i < distinctKeys; i++) {
        @SuppressWarnings("unchecked") // reading data stored by writeMultimap
        K key = (K) stream.readObject();
        Collection<V> values = multimap.get(key);
        int valueCount = stream.readInt();
        for (int j = 0; j < valueCount; j++) {
          @SuppressWarnings("unchecked") // reading data stored by writeMultimap
          V value = (V) stream.readObject();
          values.add(value);
        }
      }
    }
docs: Populates a multimap by reading an input stream, as part of deserialization. See {@link
  #writeMultimap} for the data format. The number of distinct keys is determined by a prior call
  to {@link #readCount}.