All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dahuatech.hutool.core.map.MapWrapper Maven / Gradle / Ivy

package com.dahuatech.hutool.core.map;

import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Map包装类,通过包装一个已有Map实现特定功能。例如自定义Key的规则或Value规则
 *
 * @author looly
 * @param  键类型
 * @param  值类型
 * @author looly
 * @since 4.3.3
 */
public class MapWrapper
    implements Map, Iterable>, Serializable, Cloneable {
  /** 默认增长因子 */
  protected static final float DEFAULT_LOAD_FACTOR = 0.75f;
  /** 默认初始大小 */
  protected static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16
  private static final long serialVersionUID = -7524578042008586382L;
  private Map raw;

  /**
   * 构造
   *
   * @param raw 被包装的Map
   */
  public MapWrapper(Map raw) {
    this.raw = raw;
  }

  /**
   * 获取原始的Map
   *
   * @return Map
   */
  public Map getRaw() {
    return this.raw;
  }

  @Override
  public int size() {
    return raw.size();
  }

  @Override
  public boolean isEmpty() {
    return raw.isEmpty();
  }

  @Override
  public boolean containsKey(Object key) {
    return raw.containsKey(key);
  }

  @Override
  public boolean containsValue(Object value) {
    return raw.containsValue(value);
  }

  @Override
  public V get(Object key) {
    return raw.get(key);
  }

  @Override
  public V put(K key, V value) {
    return raw.put(key, value);
  }

  @Override
  public V remove(Object key) {
    return raw.remove(key);
  }

  @Override
  public void putAll(Map m) {
    raw.putAll(m);
  }

  @Override
  public void clear() {
    raw.clear();
  }

  @Override
  public Set keySet() {
    return raw.keySet();
  }

  @Override
  public Collection values() {
    return raw.values();
  }

  @Override
  public Set> entrySet() {
    return raw.entrySet();
  }

  @Override
  public Iterator> iterator() {
    return this.entrySet().iterator();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy