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

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

根據(jù)對象參數(shù)和用戶輸入過濾 ArrayList

根據(jù)對象參數(shù)和用戶輸入過濾 ArrayList

千萬里不及你 2021-12-30 17:26:27
這是我的班級 Kommandozeilenmenü。在其中,我從 Medien 類型創(chuàng)建了一個 ArrayList。我還創(chuàng)建了一個掃描儀來跟蹤用戶輸入。Medien 是 EBooks 和 Filme 的超類,因為它們非常相似。我的任務(wù)是根據(jù)用戶輸入過濾 ArrayList。用戶輸入可以是對象媒體中的任何字段。這是 Medien 類。   public class Medien{    private int id;    protected String name;    private String kommentar;    private String erscheinungsdatum;    private static int counter;    public Medien(String name, String kommentar, String erscheinungsdatum) {        super();        counter++;        this.id = counter;        this.name = name;        this.kommentar = kommentar;        this.erscheinungsdatum = erscheinungsdatum;    }    public int getId() {        return id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getKommentar() {        return kommentar;    }    public void setKommentar(String kommentar) {        this.kommentar = kommentar;    }    public String getErscheinungsdatum() {        return erscheinungsdatum;    }    public void setErscheinungsdatum(String erscheinungsdatum) {        this.erscheinungsdatum = erscheinungsdatum;    }    public boolean equals(Medien other) {        if(this.id == other.id) {            return true;        }else {            return false;            }        }    public  void anzeigen()    {        System.out.println("\n"+"-----------------------------------------"+"\n"+"\n"+"[Medium]:"+"\n"+ "ID -->                " + this.getId() + "\n"+ "Name -->              " + this.getName() + "\n"  + "Kommentar -->         " + this.getKommentar()+ "\n"  + "Erscheinungsdatum --> " + this.getErscheinungsdatum());    }    public void entfernungsBeschreibung() {        System.out.println("ID, Name, Typ -->     " + this.getId()+ ", " + this.getClass() + ", "+ this.getName());    }}
查看完整描述

2 回答

?
蕭十郎

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

您可以在靜態(tài)方法中為您的成員設(shè)置不同的謂詞,并在過濾時使用它們。請注意,對于前兩個,我包含了 equals 和 contains,這取決于您想要搜索的方式,您當(dāng)然可以實現(xiàn)這兩個版本。


在媒體類中:


public static Predicate<Medien> nameFilter(String name) {

    //return m -> m.getName().equals(name);

    return m -> m.getName().contains(name);

}


public static Predicate<Medien> kommentar Filter(String kommentar) {

    //return m -> m.getKommentar().equals(kommentar);

    return m -> m.getKommentar().contains(kommentar);

}


public static Predicate<Medien> erscheinungsdatum Filter(String name) {

    return m -> m.getErscheinungsdatum().equals(erscheinungsdatum);

}

然后像這樣使用它們


mb.stream().filter(Medien.nameFilter("Java"));

mb.stream().filter(Medien.kommentarFilter("Alex Pina");

請注意,在您的代碼中mb是一個Medienbibliothek我不知道它是什么的對象,因此在我的示例中mb是一個ArrayList對象。


查看完整回答
反對 回復(fù) 2021-12-30
?
白衣染霜花

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

使用 java 流進行過濾。


將所有 Medien 對象存儲在一個 originalList 中。


List<Medien> originalList = new ArrayList<>();


    Medien m1 = new Filme("Java Wars", "Claudio Landerer", "25.10.2018", 150, true, false);

    Medien m2 = new EBooks("Cloverfield Paradox", "Julius Onah", "25.10.2018", 12345678, 120, 100000);

    Medien m3 = new Filme("Haus des Geldes", "Alex Pina", "01.11.2018", 200, false, true);

    Medien m4 = new EBooks("Poltergeist", "Tobe Hooper", "01.11.2018", 87654321, 175, 100);


   originalList.add(m1);

   originalList.add(m2);

   originalList.add(m3);

   originalList.add(m4);

現(xiàn)在為每種類型的過濾數(shù)據(jù)創(chuàng)建一個方法。例如:對于基于名稱的過濾,有如下方法。


List<Medien> getListBasedOnName(String name){

  return originalList.stream.filter(value -> 

  value.getName().equals(name)).collect(Collectors.toList());

}

需要為每個需要過濾的屬性創(chuàng)建類似的方法。


查看完整回答
反對 回復(fù) 2021-12-30
  • 2 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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