在使用Map中我们经常需要做一些转换。
new ArrayList<ComMetricViewGroup>(domainViewMap.values());
如上面我们需要将map的values集合转换成一个list,这个时候就不能使用下面的转换了:
List<ComMetricViewGroup> list=(List<ComMetricViewGroup>) domainViewMap.values();
这样的转换是不对的,会报如下错误信息。
Exception in thread "main" java.lang.ClassCastException: java.util.HashMap$Values cannot be cast to java.util.List。
参考文章Java 集合转换(数组、List、Set、Map相互转换)
Map的顺序;HashMap采用的是键值的hashCode来查找的,和你插入值的顺序不一定是一样的。如果需要插入进去的顺序和遍历取出来的顺序一致可以使用LinkedHashMap。
参考文章map集合排序