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

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

我可以用 Java 中的 List 以哪種方式寫出 for 循環(huán)?

我可以用 Java 中的 List 以哪種方式寫出 for 循環(huán)?

慕碼人8056858 2021-06-08 15:12:14
是否可以使用 Lambda 表達(dá)式或更好的方法來寫下 for 循環(huán)?public TaskDTO convertToDTO(Task task) {    for (int i = 0; i < task.getPrecedingTasks().size(); i++)        this.precedingTasks.add(task.getPrecedingTasks().get(i).getName());}
查看完整描述

3 回答

?
翻翻過去那場雪

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

您的解決方案很好:

task.getPrecedingTasks().stream().map(Task::getName).forEach(this.precedingTasks::add);

但由于您只是檢索 , 的一部分Task,map然后collect作為列表:

this.precedingTasks = task.getPrecedingTasks().stream().map(Task::getName).collect(Collectors.toList());

是不是更簡單易懂?因?yàn)?code>stream這里是做映射/轉(zhuǎn)換然后收集。

而且通過這種方式,您不需要對(duì)this.precedingTasksas進(jìn)行初始化

this.precedingTasks = new ArrayList<>(); // to ensure it's not null;

無論如何,這里只是個(gè)人喜好。


查看完整回答
反對(duì) 回復(fù) 2021-06-17
?
jeck貓

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

這是一個(gè)完整的例子,我把 System.out.println ... 你應(yīng)該使用 this.precedingTasks.addAll( ...


import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.stream.Collectors;


public class Main {


    public static void main(String[] args) {


        Task t1 = new Task("myTask", Arrays.asList(new Task("innerTask1"), new Task("innerTask2")));

        System.out.println(t1.precedingTasks.stream().map(Task::getName).collect(Collectors.toList()));


    }


    static class Task {


        private String name;

        private List<Task> precedingTasks = new ArrayList<>();


        public Task(String name) {

            this.name = name;

        }


        public Task(String name, List<Task> precedingTasks) {

            this.name = name;

            this.precedingTasks = precedingTasks;

        }


        public String getName() {

            return name;

        }


        public List<Task> getPrecedingTasks() {

            return precedingTasks;

        }

    }

}

輸出是


[innerTask1, innerTask2]


查看完整回答
反對(duì) 回復(fù) 2021-06-17
?
長風(fēng)秋雁

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

我在我的案例中找到了正確的解決方案:

task.getPrecedingTasks().stream().map(Task::getName).forEach(this.precedingTasks::add);

謝謝,提示:)


查看完整回答
反對(duì) 回復(fù) 2021-06-17
  • 3 回答
  • 0 關(guān)注
  • 194 瀏覽

添加回答

舉報(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)