我们经常用到一些树状的数据结构,在数据库中通常是用一个字段来记录其父节点的ID。在生成树状结构时,通常使用递归遍历的方法。在某些场合下,如果数据量不大,且更新不是很频繁时,可以将数据库的数据缓存到内存中。下面用一个自定义的特定的Map来保存这些数据:
MultiKeyMap.java
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author eyes1842
*
* @param <K> Key type
* @param <V> Value type
*/
public class MultiKeyMap<K,V>{
private Map<K,MultiKeyMap.Entry<K, V>> map = new HashMap<K,MultiKeyMap.Entry<K, V>>();
public V put(K pkey, K fkey, V value) {
MultiKeyMap.Entry<K,V> entry = new MultiKeyMap.Entry<K,V>(fkey, value);
map.put(pkey, entry);
return value;
}
public V get(K pkey) {
MultiKeyMap.Entry<K,V> entry = map.get(pkey);
if(entry!=null&&!entry.isEmpty())
return entry.getValue();
else
return null;
}
public V