可排序的Map实现

Map内部无法排序,简单实现一下。

 

package com.hp.service.urlparam;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class FIFOMap {

	private Map<String, Object> map;
	private List<String> list;

	public FIFOMap() {
		map = new HashMap<String, Object>();
		list = new ArrayList<String>();
	}

	public Object get(String key) {
		return map.get(key);
	}

	public List<String> getKeyList() {
		return list;
	}

	public void put(String key, Object value) {
		list.add(key);
		map.put(key, value);
	}

	public void putAll(FIFOMap subMap) {
		list.addAll(subMap.getKeyList());
		map.putAll(subMap.getMap(subMap));
	}

	private Map<String, Object> getMap(FIFOMap map) {
		Map<String, Object> result = new HashMap<String, Object>();
		Iterator<?> it = map.getKeyList().iterator();
		while (it.hasNext()) {
			String key = it.next().toString();
			Object value = map.get(key);
			result.put(key, value);
		}
		return result;
	}

	public boolean containsKey(String key) {
		return list.contains(key);
	}

	public String toString() {
		String result = "{";
		Iterator<?> it = this.getKeyList().iterator();
		while (it.hasNext()) {
			String key = it.next().toString();
			Object value = this.get(key);
			result += "[" + key + "] : " + value + "\n";
		}
		result += "}";
		return result;
	}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值