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

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

比較Java中列表映射中的每個對象

比較Java中列表映射中的每個對象

阿晨1998 2022-06-23 20:25:41
我有一個 Java 程序,其 Map 類型<String, Project>包含所有 Project 對象,并且 Project 的每個對象都包含一個相關(guān) Process 對象的列表,即List<Process>.public class Project {    private String name;    private Path path;    private List<Process> processes;        \\ getters and setters follow和public class Process {    private String name;    private String path;    private String flow;        \\getters and setters follow我正在編寫一個函數(shù)來查找每個(跨所有項目)JaroWinklerDistance之間的字符串距離(使用)。我想出了以下內(nèi)容:flowProcess    public void compareAllProcesses(Map<String, Project> projects) {        Iterator<Project> projIter1 = projects.values().iterator();        while(projIter1.hasNext()) {            Project proj1 = projIter1.next();            Iterator<Process> procIter1 = proj1.getProcesses().iterator();            while(procIter1.hasNext()) {                Process proc1 = procIter1.next();                Iterator<Project> projIter2 = projects.values().iterator();                while(projIter2.hasNext()) {                    Project proj2 = projIter2.next();                    Iterator<Process> procIter2 = proj2.getProcesses().iterator();                    while(procIter2.hasNext()) {                        Process proc2 = procIter2.next();                        //use JaroWinklerDistance to compare proc1.getFlow() with proc2.getFLow()                    }                }            }        }    }有沒有更有效和更優(yōu)雅的方式來實現(xiàn)這一目標(biāo)?
查看完整描述

3 回答

?
DIEA

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

List<Process> allProcesses = projects.values()

    .stream()

    .flatMap(p->p.getProcesses().stream());


for (Process currentProcess : allProcesses) {

    for (Process process : allProcesses) {

        //distance calculation

    }

}


查看完整回答
反對 回復(fù) 2022-06-23
?
忽然笑

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

也許加一點糖:


    for (Project proj1: projects.values()) {

        for (Process proc1: proj1.getProcesses()) {

            for(Project proj2: projects.values()) {

                for(Process proc2: proj2.getProcesses()) {

                    //use JaroWinklerDistance to compare proc1.getFlow() with proc2.getFLow()

                }

            }

        }

    }


查看完整回答
反對 回復(fù) 2022-06-23
?
MMMHUHU

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

也許與Streams:

projects.values()
        .stream()
        .flatMap(p->p.getProcesses().stream())
        .forEach(proc1 ->  projects.values()
                                   .stream()
                                   .flatMap(p->p.getProcesses().stream())
                                   .forEach(proc2 -> {/*do something with proc1 and proc2*/});



查看完整回答
反對 回復(fù) 2022-06-23
  • 3 回答
  • 0 關(guān)注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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