java - 数据不按顺序显示

标签 java

当我的数据打印出来时,它不是我在代码中指定的 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/

相关文章:

java - 微调器中的多项选择

java - 如何使用 Java 和 selenium Web 驱动程序单击 CTRL+P?

java - 在准备好的语句中处理 Oracle Date 数据类型的空值的正确方法

java - 处理程序和调度程序之间的区别

java - Android Studio DexArchiveMergerException:更新后无法合并dex

java - 无法在 volley 中访问 StringRequest 之外的响应

java - 未找到带有 URI [/PostTest/home/segundaVista2] 的 HTTP 请求的映射

java - 使用 PowerMock 和 Spring Boot 进行集成测试

java - 有效使用 Eclipse

java - Neo4J中如何获取关系的方向?