亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對應用程序屬性值進行排序

如何對應用程序屬性值進行排序

慕姐4208626 2023-11-01 16:37:21
是否可以對List帶有對象的接口進行排序ArrayList()?List</*classname*/> list = new ArrayList<>();我正在使用application.propertiesSpring boot 設置 List 界面中的值ModuleNames.javapublic class ModuleNames {    private String moduleId;    private String moduleName;    //getters & setters.}控制器@RequestMapping(value = "/getModuleNames", method = { RequestMethod.GET })public @ResponseBody List<String> getModuleNames() {        List<ModuleNames> moduleNamesList = new ArrayList<>();        moduleNamesList.add(new ModuleNames("Country", env.getProperty("bulkUpload.location.country")));        moduleNamesList.add(new ModuleNames("State", env.getProperty("bulkUpload.location.state")));        moduleNamesList.add(new ModuleNames("City", env.getProperty("bulkUpload.location.city")));        moduleNamesList.add(new ModuleNames("Area Pincode", env.getProperty("bulkUpload.location.areaPincode")));        return moduleNamesList;有誰知道如何對列表進行排序。我試過了moduleNamesList.sort(Comparator.naturalOrder());Collections.sort(moduleNamesList);但兩者似乎都不起作用。請在這里幫助我
查看完整描述

3 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

您需要為 ModuleNames 對象編寫自定義比較器,因為 Java 不知道如何對其進行排序,因為它不是原始類型。


例如:


Collections.sort(moduleNamesList, new Comparator<ModuleNames>() {

        @Override

        public int compare(ModuleNames o1, ModuleNames o2) {

            return o1.getModuleId().compareTo(o2.getModuleId());

        }

    });

或者


moduleNamesList.sort(new Comparator<ModuleNames>() {

        @Override

        public int compare(ModuleNames o1, ModuleNames o2) {

            return o1.getModuleName().compareTo(o2.getModuleName());

        }

    });


查看完整回答
反對 回復 2023-11-01
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

您可以通過使用實例方法引用和 Comparator.comparing 方法來避免定義比較邏輯 - 該方法根據該函數提取并創建一個 Comparable。

我們將使用 getter 來構建 Lambda 表達式。

按模塊名稱對列表進行排序:

moduleNamesList.sort(Comparator.comparing(ModuleNames::getModuleName));

按模塊名稱倒序對列表進行排序:

moduleNamesList.sort(Comparator.comparing(ModuleNames::getModuleName).reversed());

首先按 moduleName 對列表進行排序,然后按 moduleId 對列表進行排序:

moduleNamesList.sort(Comparator.comparing(ModuleNames::getModuleName).thenComparing(ModuleNames::getModuleId));


查看完整回答
反對 回復 2023-11-01
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

moduleNamesList.sort(Comparator.comparing(ModuleNames::getName));
moduleNamesList.sort(Comparator.comparing(mn -> mn.name));

或者甚至更排序:

moduleNamesList.sort(Comparator.comparing(ModuleNames::getName)
                     .thenComparing(ModuleNames::getId));


查看完整回答
反對 回復 2023-11-01
  • 3 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號