TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
最近在做首页模版,所以基于想Freemarker定时生成静态页面。由于用到线程先关的东西所以必须使用ConcurrentHashMap作为数据存储,但是ConcurrentHashMap是无序的,key 是年级 values 是一个list集合,
由于key是汉字,所以采用把ConcurrentHashMap转为TreeMap进行排序,如下:
- TreeMap<String, List<Object[]>> treeMap = new TreeMap<String, List<Object[]>>(new Comparator<String>() {
- @Override
- public int compare(String o1, String o2) {
- Integer a1 = CommonUtil.getGradeCode(o1);
- Integer a2 = CommonUtil.getGradeCode(o2);
- return a1-a2;
- }
- });
- treeMap.putAll(map);
复制代码 的确,排序的问题是解决了,但是FreeMarker貌似对于TreeMap不支持,所以就使用LinkedHashMap再putAll一次。
- Map<String, List<Object[]>> linkMap = new LinkedHashMap<String, List<Object[]>>();
- linkMap.putAll(treeMap);
复制代码
虽然很二,但是问题还是解决了,这是一个定时任务,应该不会对系统有很大的影响。
|
|