欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中l(wèi)ist根據(jù)id獲取對象的幾種方式

 更新時間:2023年07月11日 15:36:36   作者:老李的地下室  
這篇文章主要給大家介紹了關(guān)于Java中l(wèi)ist根據(jù)id獲取對象的幾種方式,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用java具有一定的參考借鑒價值,需要的朋友可以參考下

在 Java 中,有以下幾種方法來根據(jù) ID 獲取列表中的對象:

1、循環(huán)遍歷列表:遍歷整個列表,比較每個對象的 ID 和目標 ID,如果匹配,就返回該對象。

List<Object> list = ...;
int id = ...;
Object result = null;
for (Object obj : list) {
  if (obj.getId() == id) {
    result = obj;
    break;
  }
}

2、使用 Stream API:使用 Java 8 的 Stream API 操作列表,并使用 filter() 方法篩選出具有指定 ID 的對象。

List<Object> list = ...;
int id = ...;
Object result = list.stream().filter(o -> o.getId() == id).findFirst().get();

3、使用 Map:將對象存儲在 Map 中,并使用 ID 作為鍵,對象作為值。這樣,可以快速根據(jù) ID 獲取對象。

List<Object> list = ...;
Map<Integer, Object> map = list.stream().collect(Collectors.toMap(Object::getId, o -> o));
int id = ...;
Object result = map.get(id);

這三種方法的效率不同,可以根據(jù)具體需求選擇使用哪種方法。

附:4種方式獲取List中指定元素

package com.web;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class Test4 {
    public static void main(String[] args) {
        // List<String> resultList = new LinkedList<>();結(jié)果也一樣
        List<String> resultList = new ArrayList<>();
        resultList.add("success");
        resultList.add("error");
        resultList.add("success");
        resultList.add("warn");
        resultList.add("error");
        //1.利用equals,通過循環(huán)對比來找出你要的元素如下圖所示
        int index = resultList.indexOf("warn");
        System.out.println("index = " + index);
        // index = 3
        System.out.println(resultList.get(index));
        //2.直接get,根據(jù)add進去的順序找出你需要的元素
        for (String s :
                resultList) {
            if (("error").equals(s)) {
                System.out.println(s);
            }
        }
        //3.你也可以通過indexOf(賽選條件)找到元素的下表,然后get出來
       // -1 if this list does not contain the element.
        if (resultList.indexOf("warn") != -1) {
            System.out.println(resultList.get(resultList.indexOf("warn")));
        }
       //使用Iterator迭代器獲取
        Iterator it = resultList.iterator();
        while (it.hasNext()){
            String str = (String) it.next();
            if ("success".equals(str)){
                System.out.println("str = " + str);
            }
        }
    }
}

總結(jié)

到此這篇關(guān)于Java中l(wèi)ist根據(jù)id獲取對象的幾種方式的文章就介紹到這了,更多相關(guān)Java list根據(jù)id獲取對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaWeb編程 Servlet的基本配置

    JavaWeb編程 Servlet的基本配置

    本文講的是Servlet最基本的配置信息,相信對你一定有幫助
    2013-11-11
  • SpringBoot優(yōu)先加載指定Bean的實現(xiàn)

    SpringBoot優(yōu)先加載指定Bean的實現(xiàn)

    SpringBoot框架在啟動時可以自動將托管的Bean實例化,一般情況下它的依賴注入特性可以正確處理Bean之間的依賴關(guān)系,無需手動指定某個 Bean優(yōu)先創(chuàng)建實例,文中有詳細的代碼示例,需要的朋友可以參考下
    2023-05-05
  • Java數(shù)組轉(zhuǎn)換為集合的相關(guān)方法

    Java數(shù)組轉(zhuǎn)換為集合的相關(guān)方法

    在Java中我們經(jīng)常需要將數(shù)組從一種類型轉(zhuǎn)換為另一種類型,下面這篇文章主要給大家介紹了關(guān)于Java數(shù)組轉(zhuǎn)換為集合的相關(guān)方法,文中通過圖文及代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • Java?AQS中ReentrantLock條件鎖的使用

    Java?AQS中ReentrantLock條件鎖的使用

    ReentrantLock繼承了Lock接口,?lock方法實際上是調(diào)用了Sync的子類NonfairSync(非公平鎖)的lock方法。ReentrantLock的真正實現(xiàn)在他的兩個內(nèi)部類NonfairSync和FairSync中,默認實現(xiàn)是非公平鎖
    2023-02-02
  • spring AOP實現(xiàn)@Around輸出請求參數(shù)和返回參數(shù)

    spring AOP實現(xiàn)@Around輸出請求參數(shù)和返回參數(shù)

    這篇文章主要介紹了spring AOP實現(xiàn)@Around輸出請求參數(shù)和返回參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Spring的@Value如何從Nacos配置中心獲取值并自動刷新

    Spring的@Value如何從Nacos配置中心獲取值并自動刷新

    這篇文章主要介紹了Spring的@Value如何從Nacos配置中心獲取值并自動刷新,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • SpringSecurity集成第三方登錄過程詳解(最新推薦)

    SpringSecurity集成第三方登錄過程詳解(最新推薦)

    在ThirdAuthenticationFilter 類的attemptAuthentication()方法中,我們通過authType類型,然后創(chuàng)建對應(yīng)的Authentication實現(xiàn)來實現(xiàn)不同方式的登錄,下面給大家分享SpringSecurity集成第三方登錄過程,感興趣的朋友一起看看吧
    2024-05-05
  • Thymeleaf中th:each及th:if使用方法解析

    Thymeleaf中th:each及th:if使用方法解析

    這篇文章主要介紹了Thymeleaf中th:each及th:if使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • SSM框架通過mybatis-generator自動生成代碼(推薦)

    SSM框架通過mybatis-generator自動生成代碼(推薦)

    這篇文章主要介紹了SSM框架通過mybatis-generator自動生成代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • 關(guān)于Maven parent.relativePath說明

    關(guān)于Maven parent.relativePath說明

    Maven中的relativePath用于指定父項目pom.xml的相對路徑,默認值為../pom.xml,這個配置幫助Maven在構(gòu)建時定位父模塊的位置,確保模塊間的依賴關(guān)系正確,relativePath可以指向本地或遠程倉庫中的父項目,如果不需要尋找父項目,可以將其設(shè)置為空
    2024-09-09

最新評論