- Map 的实现类有 HashMap、LinkedHashMap、TreeMap
- HashMap是无序的
- LinkedHashMap 和 TreeMap 是有序的。LinkedHashMap 记录了添加数据的顺序;TreeMap 默认是升序
- LinkedHashMap 底层存储结构是哈希表+链表,链表记录了添加数据的顺序
- TreeMap 底层存储结构是二叉树,二叉树的中序遍历保证了数据的有序性
TreeMap在实际代码中的使用示例:
/**
* 根据Map获取排序拼接后的字符串
* @param map
* @return
*/
public static String getStringByMap(Map<String, Object> map) {
SortedMap<String, Object> smap = new TreeMap<String, Object>(map);
StringBuffer sb = new StringBuffer();
for (Map.Entry<String, Object> m : smap.entrySet()) {
sb.append(m.getKey()).append("=").append(m.getValue()).append("&");
}
sb.delete(sb.length() - 1, sb.length());
return sb.toString();
}