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

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

更新對象列表中對象的值

更新對象列表中對象的值

守著星空守著你 2022-07-27 09:39:31
我必須更新對象列表中的對象字段我有一堂“書”class Book{   String name ;   int count;  ....constructor  .. getter setters}現(xiàn)在我有一個(gè)方法 updateCountpublic void updateCount() {  List<Book> books = new ArrayList<Book>() {   {     add(new Book("Book1", 1));     add(new Book("Book2" , 2));     // it can be more than 2 and in any manner not in any defined sequence  but we can     // identify with the book name   }}public static void main(String[] args) {   /// now i have to update the value of count to 3 in book2   /// how can I update}如果有人有使用 java 8 的解決方案,那就太好了
查看完整描述

5 回答

?
手掌心

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

您可以在流列表上使用過濾器,然后簡單地更新計(jì)數(shù)


public void updateCount(String bookName, int updateBy) {

  books.stream().filter(book -> book.getName().equals(bookName)).forEach(

      book -> book.setCount(book.getCount() + updateBy)

  );

}


查看完整回答
反對 回復(fù) 2022-07-27
?
30秒到達(dá)戰(zhàn)場

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

books.stream().filter(book -> book.getName().equals("book2")).findFirst().get().setCount(3);

但是,NoSuchElementException如果 book2 在 List 中不存在,它會拋出。這就是為什么你應(yīng)該使用Optional.isPresent()檢查。

Optional<Book> book2 = books.stream().filter(book -> book.getName().equals("book2")).findFirst();
book2.ifPresent(book -> book.setCount(3));

請注意,我也在尋找第一個(gè) found book2。如果要查找Book具有特定名稱的所有內(nèi)容,則應(yīng)使用foreach語法而不是findFirst.


查看完整回答
反對 回復(fù) 2022-07-27
?
Helenr

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

簡單明了的方法:

public void updateCount(List<Book> books) {
    books.stream()
         .filter(book -> book.getName().equals("book2"))
         .findFirst()
         .get()
         .setCount(3);}


查看完整回答
反對 回復(fù) 2022-07-27
?
qq_笑_17

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

您可以像下面那樣遍歷列表,并且為了更新對象值,您可以根據(jù)需要提供條件或使用數(shù)組的索引。假設(shè)您需要更新一本價(jià)格為 100 到 7500 的書,您可以執(zhí)行以下操作。


for (Book book : books){

  if( book.getPrice() == 100){

       book.setPrice(7500);

  }

}


// if you want to update the book2's number, then

for (Book book: books){

  if( book.getName() == "Book2"){

      book.setNumber(/*set number here*/);

  }

}


查看完整回答
反對 回復(fù) 2022-07-27
?
慕婉清6462132

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

您鏈接的updateCount方法似乎只是創(chuàng)建了一個(gè)書籍列表,我不確定您要在這里做什么,但也許該方法應(yīng)該返回List<Book>,以便您可以在主函數(shù)中創(chuàng)建一個(gè)書籍列表?如果你這樣做,那么你可以創(chuàng)建一個(gè)新方法,你可以將你的列表傳遞給它,你想要在該列表中更新的索引以及該書的新計(jì)數(shù)值,如下所示:


private void updateBookCount(List<Book> books, int booksIndex, int newCount)

{

     if (books.size() > booksIndex)

         books.get(booksIndex).setCount(newCount);

}


查看完整回答
反對 回復(fù) 2022-07-27
  • 5 回答
  • 0 關(guān)注
  • 138 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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