1. HashMap的数据存放顺序问题
错误情景:excel表格导入,要求错误信息定位到具体行列,用Map集合来存发生错误的行列信息,结果页面返回错误信息提示:”第四行xx列错误,第三行xx列错误,第五行xx列错误“。
原因:Map的子类最常用的就是Hashmap,但放入的数据是无序的.
解决: 如果想要取出的数据与放入的数据顺序相同,可以使用linkedhashmap
Map<String, String> map = new LinkedHashMap<String, String>();
补充:java各个集合类特点:
Collection
List 【允许元素重复,输出顺序与插入顺序一致】
ArrayList 【随机访问元素性能优于LinkedList】
LinkedList【进行频繁的增删操作时性能优于ArrayList】
Set【不允许元素重复】
HashSet【最快的获取元素】
TreeSet【按照比较结果的升序保存对象】
LinkedHashSet【按照添加的顺序保存对象】
Map【不允许键重复】
HashMap【提供最快的查找技术】
TreeMap 【按照比较结果的升序保存键】
LinkedHashMap【按照插入顺序保存键】