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

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

if 語句中不考慮布爾方法返回

if 語句中不考慮布爾方法返回

翻翻過去那場雪 2023-02-16 17:03:52
一個對象有一個 String 類型的 name 屬性和一個與對象本身相同類型的 dependency 屬性?,F(xiàn)在,如果我創(chuàng)建對象的一個實例并將相同的實例設(shè)置為依賴項屬性,那么通過將對象的名稱與依賴項名稱進(jìn)行比較來檢查對象是否自反在 if 語句中不起作用。class Job {    private String name;    private Job dependency;    boolean hasDependency() {        return dependency != null;    }    //getter,setters}&class JobSequence {    private ArrayList<Job> jobsArrayList;    private ArrayList<Job> orderedJobsArrayList = new ArrayList<>();    JobSequence(ArrayList<Job> jobsArrayList) {        this.jobsArrayList = jobsArrayList;    }    void sortByDependency() {        for (Job job : jobsArrayList) {            if (!orderedJobsArrayList.contains(job)) orderedJobsArrayList.add(job);            if (job.hasDependency()) {                if (!isReflexive(job, job.getDependency())) {                    if (!orderedJobsArrayList.contains(job.getDependency())) {                        int index = orderedJobsArrayList.indexOf(job);                        orderedJobsArrayList.set(index, job.getDependency());                        orderedJobsArrayList.add(index + 1, job);                    }                }            }        }    }    private boolean isReflexive(Job i, Job j) {        return i.getName().equals(j.getName());    }}&public class Main {    public static void main(String[] args) {        Job a = new Job("a");        Job b = new Job("b");        Job c = new Job("c");        a.setDependency(null);        b.setDependency(null);        c.setDependency(c);        ArrayList<Job> jobArrayList = new ArrayList<>();        Collections.addAll(jobArrayList, a, b, c);        JobSequence sequence = new JobSequence(jobArrayList);        sequence.sortByDependency();        sequence.getOrderedJobsArrayList().forEach(p -> System.out.println(p.getName()));    }}結(jié)果應(yīng)該是a,b而不是a,b,c
查看完整描述

3 回答

?
揚帆大魚

TA貢獻(xiàn)1799條經(jīng)驗 獲得超9個贊

因為a并且b因為它們沒有依賴性,所以hasDependency()調(diào)用 returns false,因此它們只是被添加到orderedJobsArrayList

對于c,您再次擁有依賴項本身c,從第一次if檢查開始,它也被添加到列表中,因為列表不包含名稱Job"c"依賴項變量,然后isReflexive(job, job.getDependency())調(diào)用返回一個true,因為c.getName().equals(c.getName()) == true,但是您的if條件有返回值的否定,因此它不會繼續(xù)到算法的底部。

a, b, c中的結(jié)果orderedJobsArrayList是正確的。


查看完整回答
反對 回復(fù) 2023-02-16
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗 獲得超10個贊

無論任何依賴條件如何,您都將所有作業(yè)添加到有序列表中: if (!orderedJobsArrayList.contains(job)) orderedJobsArrayList.add(job);

您是否使用調(diào)試器查看它是否通過了 IsReflexive 測試?事實上,a, b, c, c如果不是,你會得到。


查看完整回答
反對 回復(fù) 2023-02-16
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗 獲得超8個贊

import java.util.ArrayList;


class JobSequence {

    private ArrayList<Job> jobsArrayList;

    private ArrayList<Job> orderedJobsArrayList = new ArrayList<>();


    JobSequence(ArrayList<Job> jobsArrayList) {

        this.jobsArrayList = jobsArrayList;

    }


    void sortByDependency() {

        for (Job job : jobsArrayList) {

            if (!orderedJobsArrayList.contains(job)) orderedJobsArrayList.add(job);


            if (job.hasDependency()) {

                if (!isReflexive(job, job.getDependency())) {

                    if (!orderedJobsArrayList.contains(job.getDependency())) {

                        int index = orderedJobsArrayList.indexOf(job);

                        orderedJobsArrayList.set(index, job.getDependency());

                        orderedJobsArrayList.add(index + 1, job);

                    }

                }else {

                    orderedJobsArrayList.remove(job);

                }

            }

        }

    }


    private boolean isReflexive(Job i, Job j) {

        return i.getName().equals(j.getName());

    }


    public ArrayList<Job> getOrderedJobsArrayList() {

        return orderedJobsArrayList;

    }


    public void setOrderedJobsArrayList(ArrayList<Job> orderedJobsArrayList) {

        this.orderedJobsArrayList = orderedJobsArrayList;

    }

}


Try this-

根據(jù)您的實施,輸出 a、b、c 是完美的,因為您已將所有工作添加到列表中,即


如果 (!orderedJobsArrayList.contains(job)) orderedJobsArrayList.add(job);


在作業(yè)c 的情況下,條件if(!isReflexive(job, job.getDependency())) 的計算結(jié)果為 false ,因此您應(yīng)該從列表中刪除該作業(yè)。


查看完整回答
反對 回復(fù) 2023-02-16
  • 3 回答
  • 0 關(guān)注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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