第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

根據(jù)具有特殊條件的多個(gè)字段對對象列表進(jìn)行排序

根據(jù)具有特殊條件的多個(gè)字段對對象列表進(jìn)行排序

海綿寶寶撒 2023-06-14 13:58:14
我正在嘗試根據(jù)兩個(gè)字段 [ Name , Old name ] 按升序?qū)ο罅斜磉M(jìn)行排序,其中Name字段值可以是破折號(hào)(“-”),如果名稱是破折號(hào),那么它將被添加到列表的末尾. [像下面的順序:名稱:舊名稱]SENSITIVE: COMP Operations: COMP OperationsSENSITIVE: Court procedural documents: Court procedural documentsSENSITIVE: Staff matter: Staff MatterSPECIAL HANDLING: ETS Critical: ETS Critical-: ETS Limited-: EU Satellite Navigation matters-: Limited ETS Joint Procurement到目前為止,我得到了以下結(jié)果:-: ETS Limited-: EU Satellite Navigation matters-: Limited ETS Joint ProcurementSENSITIVE: COMP Operations: COMP OperationsSENSITIVE: Court procedural documents: Court procedural documentsSENSITIVE: Staff matter: Staff MatterSPECIAL HANDLING: ETS Critical: ETS Critical領(lǐng)域模型:class Marking {    String name;    String oldName;    public Marking(String name, String oldName) {        this.name = name;        this.oldName = oldName;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getOldName() {        return oldName;    }    public void setOldName(String oldName) {        this.oldName = oldName;    }    @Override    public String toString() {        return "Marking [name=" + name + ", oldName=" + oldName + "]";    }}和解決方案類:public class Solution {    public static void main(String[] args) {        List<Marking> markings = new ArrayList<>();        markings.add(new Marking("-", "Limited ETS Joint Procurement"));        markings.add(new Marking("-", "EU Satellite Navigation matters"));        markings.add(new Marking("SENSITIVE: Court procedural documents", "Court procedural documents"));        markings.add(new Marking("SENSITIVE: COMP Operations", "COMP Operations"));        markings.add(new Marking("-", "ETS Limited"));        markings.add(new Marking("SENSITIVE: Staff matter", "Staff Matter"));        markings.add(new Marking("SPECIAL HANDLING: ETS Critical", "ETS Critical"));任何人都可以給我一些建議,如何將破折號(hào)名稱對象添加到列表的末尾,其中舊名稱應(yīng)按升序排列。
查看完整描述

2 回答

?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

這是我很快想到的一個(gè)選項(xiàng):


  Collections.sort(markings, (o1, o2) -> {


            int value = o1.getName().compareToIgnoreCase(o2.getName());

            if(value == 0) {

                return o1.getOldName().compareToIgnoreCase(o2.getOldName());

            }


            if(o1.getName().equals("-")) {

                return 1;

            }

            if(o2.getName().equals("-")) {

                return -1;

            }


            return value;

        });


查看完整回答
反對 回復(fù) 2023-06-14
?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是一個(gè)建議。順序很好,我們所做的就是取出所有以“-”開頭的元素并將它們從列表中刪除,然后將它們添加回末尾。這是低效的,但它是一種決心。


    public static void main(String[] args) {

        List<Marking> markings = new ArrayList<>();


        markings.add(new Marking("-", "Limited ETS Joint Procurement"));

        markings.add(new Marking("-", "EU Satellite Navigation matters"));

        markings.add(new Marking("SENSITIVE: Court procedural documents", "Court procedural documents"));

        markings.add(new Marking("SENSITIVE: COMP Operations", "COMP Operations"));

        markings.add(new Marking("-", "ETS Limited"));

        markings.add(new Marking("SENSITIVE: Staff matter", "Staff Matter"));

        markings.add(new Marking("SPECIAL HANDLING: ETS Critical", "ETS Critical"));



        markings.sort((o1, o2) -> {

            int value = o1.getName().compareToIgnoreCase(o2.getName());


            if (value == 0) {

                return o1.getOldName().compareToIgnoreCase(o2.getOldName());

            }

            return value;

        });


        List<Marking> dashed = markings.stream().filter(marking -> marking.name.startsWith("-") || marking.oldName.startsWith("-"))

                .collect(Collectors.toList());


        markings.removeAll(dashed);


        markings.addAll(dashed);


        for (Marking marking : markings) {

            System.out.println(marking.getName() + ": " + marking.getOldName());

        }

    }


查看完整回答
反對 回復(fù) 2023-06-14
  • 2 回答
  • 0 關(guān)注
  • 166 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)