code: @Beta
      public static <K, V> Map<K, V> zip(List<K> keys, List<V> values) {
          checkArgument(keys != null, "Expected non-null keys");
          checkArgument(values != null, "Expected non-null values");
          checkArgument(keys.size() == values.size(), "Expected equal size of lists, got %s and %s", keys.size(), values.size());
  
          ImmutableMap.Builder<K, V> builder = ImmutableMap.builder();
  
          for (int i = 0; i < keys.size(); i++) {
              builder.put(keys.get(i), values.get(i));
          }
  
          return builder.build();
      }
docs: Combine two lists into a map. Lists must have the same size.
  
  @param keys   the key list
  @param values the value list
  @param <K>    the key type
  @param <V>    the value type
  @return the resulting map
  @throws IllegalArgumentException if lists size differ
  @throws NullPointerException     if any of the lists is null