Collections Data Structure Java

import java.util.HashMap;
import java.util.Map;
public class Main {
  /**
   * Clones the lhs map and add all things from the
   * rhs map.
   *
   * @param lhs the first map
   * @param rhs the second map
   * @return the merged map
   */
  public static Map merge(Map lhs, Map rhs) {
      Map result = null;
      if((lhs == null) || (lhs.size() == 0)) {
          result = copy(rhs);
      }
      else if((rhs == null) || (rhs.size() == 0)) {
          result = copy(lhs);
      }
      else {
          result = copy(lhs);
          result.putAll(rhs);
      }
      
      return result;
  }
  /**
   * Clones a map.
   *
   * @param source the source map
   * @return the clone of the source map
   */
  public static Map copy(Map source) {
      if(source == null) {
          return null;
      }
      Map result = new HashMap();
      result.putAll(source);
      return result;
  }
}