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

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

在java中合并數(shù)組

在java中合并數(shù)組

波斯汪 2023-03-09 10:20:33
我需要按對象的 id 合并數(shù)組。我的班級有兩個數(shù)組(本地和全局):public class Info {    private int id;// never change    private String msg;    private boolean isFavor;// presents only in local array// constructor,getters, setters etc }合并規(guī)則:如果對象不存在于全局數(shù)組中,我們不合并它;僅從全局對象中獲取 msg ;如果對象存在于全局數(shù)組中,我們添加(合并)它;變量“isFavor”取自本地對象;數(shù)組沒有排序;例子:local arayList = {Info(1,"msg1",false),Info(2,"msgTwo",false),Info(3,"msg3",true), Info(4,"msg4",true)};global arayList = {Info(1,"msg1",false),Info(2,"msg2",false),Info(3,"msg3",false),Info(5,"msg5",false)}result arayList = {Info(1,"msg1",false),Info(2,"msg2",false),Info(3,"msg3",true),Info(5,"msg5",false)}
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經(jīng)驗 獲得超6個贊

所以,我做了這樣的事情,我認為它可以滿足你的要求?;旧希宜龅氖且韵聝?nèi)容。我將所有全局值添加到映射中,并在局部值的下一次迭代中檢查 id 是否存在,然后更改isFavor.


public static void main(String[] args) throws ParseException {

    List<Info> local = new ArrayList<>();

    local.add(new Info(1,"msg1",false));

    local.add(new Info(2,"msgTwo",false));

    local.add(new Info(3,"msg3",true));

    local.add(new Info(4,"msg4",true));



    List<Info> global = new ArrayList<>();

    global.add(new Info(1,"msg1",false));

    global.add(new Info(2,"msg2",false));

    global.add(new Info(3,"msg3",false));

    global.add(new Info(4,"msg5",true));


    Map<Integer, Info> map = new HashMap<>();


    for (Info info : global) {

        if (!map.containsKey(info.id)) {

            map.put(info.id, info);

        }

    }


    for (Info info : local) {

        if (map.containsKey(info.id)){

            map.get(info.id).isFavor = info.isFavor;

        }

    }


    System.out.println(map.values());

}


查看完整回答
反對 回復(fù) 2023-03-09
?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

public Info [] merge(Info [] localArray, Info [] globalArray) {


    List<Info> resultList = new ArrayList();

    for(Info infoGlobal : globalArray) {

        Info infoLocal = findInfo(infoGlobal.getId(), localArray);

        if( infoLocal != null )

            infoGlobal.setFavor(infoLocal.isFavor());

        resultList.add(infoGlobal);

    }


    return resultList.toArray();

}


private Info findInfo(int id, Info [] infoArray) {


    for(Info info : infoArray)

        if(info.getId == id)

            return info ;


   return null ;

}


查看完整回答
反對 回復(fù) 2023-03-09
  • 2 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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