【Java】redisと同様のhashストレージ動作(key------field------value)を実現


データモデルは以下のtime typeA valueA
time typeB valueBこのようなデータ記憶モードはredisのhash操作と類似しており、key------field------value式の記憶構造はjavaによる抽象化を決定する
keyはStringタイプを選択し、fieldとvalueは全体を採用し、mapと同様に処理し、mapを秩序正しく入力するためにLinkedHashMapを採用し、最終的に抽象化された符号化は以下の通りである.
import java.util.LinkedHashMap;
import java.util.Map;
@SuppressWarnings({ "rawtypes", "serial" })
public class HashInfo extends LinkedHashMap{
	private Map sub = new LinkedHashMap();
	/**
	 *   sub.
	 *
	 * @param   sub    HashInfo       sub
	 */
	public void setSub(Map sub) {
		this.sub = sub;
	}
	@SuppressWarnings("unchecked")
	public synchronized void hset(String key,String hkey,Object value){
		sub = (Map) this.get(key);
		if(sub == null){
			sub = new LinkedHashMap();
		}
		sub.put(hkey, value);
		this.put(key, sub);
	}
	public synchronized Object hget(String key,String hkey){
		Map sub = (Map) this.get(key);
		if(sub != null){
			return sub.get(hkey);
		}
		return null;
	}
}

テスト手順は次のとおりです.
 
package util;

public class HashInfoTest {
 
	public static void main(String[] args) {
		HashInfo hash = new HashInfo();
		hash.hset("key", "field", "value");
		System.out.println(hash.hget("key", "field"));
	}
 
}