按值排序 List<Map<String,Object>>

我正在尝试List<Map<String, Object>>从对 oracle 数据库的请求进行排序。我收到的格式是这样的


63: "Preasignación"

401: "Categorización de posiciones RPV"

509: "Genérica"

532: "Baja de conservación de número"

537: "Pooles ADSL RIMA"

660: "Activación"

886: "CENTREX"

905: "Conservación de número"

920: "Suspensión y rehabilitación"

955: "STB, AABB, PBX e ISPBX"

如您所见,它们按数字排序,但我想按“字母顺序”按值对它们进行排序。我该怎么做?请尽量不要对西班牙代码感到害怕:) 这是继承的代码。这是我的代码。


public ArrayList<String> ObtenerIdsTiposOrdenPorPerfilLdap(String perfiles) {


    String query = "";

    ArrayList<String> tipos = new ArrayList<String>();

    try {

        query = " SELECT ID_PARAMETRO FROM PARAMETRO WHERE EXISTS( " +

                    " SELECT DISTINCT(ID_TIPO_ORDEN) FROM REL_PERF_LDAP_PERF_TP_ORD_SIS " +

                    " WHERE ID_PERFIL_LDAP IN (" + perfiles + ") " +

                    " AND ID_TIPO_ORDEN = -1) " +

                    " AND ID_TIPO_PARAMETRO = " + Parametro.ID_TIPO_PARAMETRO_TIPO_ORDEN +

                    " UNION " +

                    " SELECT ID_PARAMETRO FROM PARAMETRO WHERE ID_PARAMETRO IN ( " +

                    " SELECT DISTINCT(ID_TIPO_ORDEN) FROM REL_PERF_LDAP_PERF_TP_ORD_SIS " +

                    " WHERE ID_PERFIL_LDAP IN (" + perfiles + ")) " +

                    " AND ID_TIPO_PARAMETRO = " + Parametro.ID_TIPO_PARAMETRO_TIPO_ORDEN +

                    " ORDER BY ID_PARAMETRO ";

        List<Map<String, Object>> result = jdbcTemplate.queryForList(query);

        for (Map<String, Object> map : result) {

            tipos.add(String.valueOf(map.get("ID_PARAMETRO")));  

        }

    } catch (Exception e) {

        log.error(e.getMessage());

    } finally {

        query = null;

    }

    return tipos;

}


繁星淼淼
浏览 161回答 1
1回答

收到一只叮咚

如果PARAMETRO("preasignación", ...)的文本描述实际上是PARAMETRO其本身(让我们称其为该列TXT_PARAMETRO),那么让数据库进行排序就足够了:删除"&nbsp;ORDER&nbsp;BY&nbsp;ID_PARAMETRO&nbsp;";并添加"&nbsp;ORDER&nbsp;BY&nbsp;TXT_PARAMETRO&nbsp;";反而。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java