package ssj.algorithm;
import com.google.common.base.Preconditions;
import java.util.Iterator;
/**
* Created by shenshijun on 15/2/3.
*/
public interface Map {
void set(K key, V value);
V get(K key);
public default V getDefault(K key, V default_value) {
Preconditions.checkNotNull(key);
V value = get(key);
return (value == null) ? default_value : value;
}
public default V setIfAbsent(K key, V default_value){
Preconditions.checkNotNull(key);
V value = get(key);
if (value == null) {
set(key, default_value);
value = default_value;
}
return value;
}
public int size();
boolean containsKey(K key);
MapIterator iterator();
Iterator keyIterator();
Iterator valueIterator();
public default boolean isEmpty() {
return size() <= 0;
}
V remove(K key);
}