Java中l(wèi)ist根據(jù)id獲取對(duì)象的幾種方式
在 Java 中,有以下幾種方法來根據(jù) ID 獲取列表中的對(duì)象:
1、循環(huán)遍歷列表:遍歷整個(gè)列表,比較每個(gè)對(duì)象的 ID 和目標(biāo) ID,如果匹配,就返回該對(duì)象。
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 的對(duì)象。
List<Object> list = ...; int id = ...; Object result = list.stream().filter(o -> o.getId() == id).findFirst().get();
3、使用 Map:將對(duì)象存儲(chǔ)在 Map 中,并使用 ID 作為鍵,對(duì)象作為值。這樣,可以快速根據(jù) ID 獲取對(duì)象。
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)對(duì)比來找出你要的元素如下圖所示
int index = resultList.indexOf("warn");
System.out.println("index = " + index);
// index = 3
System.out.println(resultList.get(index));
//2.直接get,根據(jù)add進(jìn)去的順序找出你需要的元素
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獲取對(duì)象的幾種方式的文章就介紹到這了,更多相關(guān)Java list根據(jù)id獲取對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot優(yōu)先加載指定Bean的實(shí)現(xiàn)
SpringBoot框架在啟動(dòng)時(shí)可以自動(dòng)將托管的Bean實(shí)例化,一般情況下它的依賴注入特性可以正確處理Bean之間的依賴關(guān)系,無需手動(dòng)指定某個(gè) Bean優(yōu)先創(chuàng)建實(shí)例,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2023-05-05
Java數(shù)組轉(zhuǎn)換為集合的相關(guān)方法
在Java中我們經(jīng)常需要將數(shù)組從一種類型轉(zhuǎn)換為另一種類型,下面這篇文章主要給大家介紹了關(guān)于Java數(shù)組轉(zhuǎn)換為集合的相關(guān)方法,文中通過圖文及代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
spring AOP實(shí)現(xiàn)@Around輸出請(qǐng)求參數(shù)和返回參數(shù)
這篇文章主要介紹了spring AOP實(shí)現(xiàn)@Around輸出請(qǐng)求參數(shù)和返回參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Spring的@Value如何從Nacos配置中心獲取值并自動(dòng)刷新
這篇文章主要介紹了Spring的@Value如何從Nacos配置中心獲取值并自動(dòng)刷新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
SpringSecurity集成第三方登錄過程詳解(最新推薦)
在ThirdAuthenticationFilter 類的attemptAuthentication()方法中,我們通過authType類型,然后創(chuàng)建對(duì)應(yīng)的Authentication實(shí)現(xiàn)來實(shí)現(xiàn)不同方式的登錄,下面給大家分享SpringSecurity集成第三方登錄過程,感興趣的朋友一起看看吧2024-05-05
SSM框架通過mybatis-generator自動(dòng)生成代碼(推薦)
這篇文章主要介紹了SSM框架通過mybatis-generator自動(dòng)生成代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11
關(guān)于Maven parent.relativePath說明
Maven中的relativePath用于指定父項(xiàng)目pom.xml的相對(duì)路徑,默認(rèn)值為../pom.xml,這個(gè)配置幫助Maven在構(gòu)建時(shí)定位父模塊的位置,確保模塊間的依賴關(guān)系正確,relativePath可以指向本地或遠(yuǎn)程倉庫中的父項(xiàng)目,如果不需要尋找父項(xiàng)目,可以將其設(shè)置為空2024-09-09

