- 在向HashMap插入数据时,发现Resultset返回的数据是正常顺序,但是插入HashMap后数据出现乱序,因此后续用LinkedHashMap解决数据乱序问题。
- LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。也可以在构造时带参数,按照应用次数排序。
List<Map<String, Object>> list = new ArrayList<>();
String sql = "select * from " + table + " limit 100000";
long startTime = System.currentTimeMillis();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();
while (rs.next()) {
Map<String, Object> rowData = new LinkedHashMap<>();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
long endTime = System.currentTimeMillis();
double spendTime = (endTime - startTime)/1000.0;
System.out.println("查询时间:" + spendTime + "s");
LinkedHashMap情况下,多次测试插入数据的运行时间
HashMap情况下,多次测试插入数据的运行时间