package eu.dnetlib.miscutils.collections;

public class Pair<K, V> {

	private K key;

	private V value;

	public Pair() {}

	public Pair(final K key, final V value) {
		this.key = key;
		this.value = value;
	}

	@Override
	public boolean equals(final Object obj) {
		if (obj instanceof Pair<?, ?>) {
			final Pair<?, ?> tmp = (Pair<?, ?>) obj;
			return key.equals(tmp.getKey()) && value.equals(tmp.getValue());
		} else {
			return false;
		}
	}

	@Override
	public int hashCode() {
		return key.hashCode();
	}

	public K getKey() {
		return key;
	}

	public void setKey(final K key) {
		this.key = key;
	}

	public V getValue() {
		return value;
	}

	public void setValue(final V value) {
		this.value = value;
	}

	@Override
	public String toString() {
		return String.format("[%s] -> [%s]", key, value);
	}

}
