当我的数据打印出来时,它不是我在代码中指定的 ORDER BY 的顺序。
这是我的一些代码片段,可能会有帮助。请注意一些错误,因为我必须在发布前删除一些行。
String dataFinder = "SELECT DISTINCT dG2 FROM DAE ORDER BY dG2";
HashMap<String, StringWriter> fSW= new HashMap<String, StringWriter>();
HashMap<String, HashMap<String, String>> DGGSW = new HashMap<String, HashMap<String, String>>();
this.setSQL(dataFinder);
ResultSet rs = this.retrieveAllData(handler, tracker);
while ( rs.next() )
{
if ( rs.getString("dG2") != null )
{
fSW.put(rs.getString("dG2").trim().toUpperCase(), new StringWriter());
DGGSW.put(rs.getString("dG2").trim().toUpperCase(), new HashMap<String, String>());
}
}
StringWriter stringWriter = new StringWriter();
while ( rs.next() )
{
String dataList = "";
if ( rs.getString("diagM") != null )
dataList = rs.getString("diagM");
}
String resultString = stringWriter.toString();
for ( String diaG : DDGSW.keySet() )
resultString += diaG + "," + DDGSW.get(gateNo).toString();
this.WriteToFile(resultString);
}
}
}
最佳答案
您的数据结构选择不正确。
你应该使用 LinkedHashMap代替 HashMap (不保证保留插入顺序)如果您想要插入顺序。
由于您是按顺序获取记录并将其插入到 HashMap
中,因此记录是按随机顺序插入的,因为它是通过哈希函数传递的。
关于java - 数据不按顺序显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29764482/