Java中l(wèi)ist根據(jù)id獲取對象的幾種方式
在 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)文章
SpringBoot優(yōu)先加載指定Bean的實現(xiàn)
SpringBoot框架在啟動時可以自動將托管的Bean實例化,一般情況下它的依賴注入特性可以正確處理Bean之間的依賴關(guān)系,無需手動指定某個 Bean優(yōu)先創(chuàng)建實例,文中有詳細的代碼示例,需要的朋友可以參考下2023-05-05Java數(shù)組轉(zhuǎn)換為集合的相關(guān)方法
在Java中我們經(jīng)常需要將數(shù)組從一種類型轉(zhuǎn)換為另一種類型,下面這篇文章主要給大家介紹了關(guān)于Java數(shù)組轉(zhuǎn)換為集合的相關(guān)方法,文中通過圖文及代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01spring AOP實現(xiàn)@Around輸出請求參數(shù)和返回參數(shù)
這篇文章主要介紹了spring AOP實現(xiàn)@Around輸出請求參數(shù)和返回參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02Spring的@Value如何從Nacos配置中心獲取值并自動刷新
這篇文章主要介紹了Spring的@Value如何從Nacos配置中心獲取值并自動刷新,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07SpringSecurity集成第三方登錄過程詳解(最新推薦)
在ThirdAuthenticationFilter 類的attemptAuthentication()方法中,我們通過authType類型,然后創(chuàng)建對應(yīng)的Authentication實現(xiàn)來實現(xiàn)不同方式的登錄,下面給大家分享SpringSecurity集成第三方登錄過程,感興趣的朋友一起看看吧2024-05-05SSM框架通過mybatis-generator自動生成代碼(推薦)
這篇文章主要介紹了SSM框架通過mybatis-generator自動生成代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2017-11-11關(guān)于Maven parent.relativePath說明
Maven中的relativePath用于指定父項目pom.xml的相對路徑,默認值為../pom.xml,這個配置幫助Maven在構(gòu)建時定位父模塊的位置,確保模塊間的依賴關(guān)系正確,relativePath可以指向本地或遠程倉庫中的父項目,如果不需要尋找父項目,可以將其設(shè)置為空2024-09-09