Java中list根据id获取对象的几种方式
作者:老李的地下室
这篇文章主要给大家介绍了关于Java中list根据id获取对象的几种方式,文中通过实例代码介绍的非常详细,对大家学习或者使用java具有一定的参考借鉴价值,需要的朋友可以参考下
在 Java 中,有以下几种方法来根据 ID 获取列表中的对象:
1、循环遍历列表:遍历整个列表,比较每个对象的 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 作为键,对象作为值。这样,可以快速根据 ID 获取对象。
List<Object> list = ...; Map<Integer, Object> map = list.stream().collect(Collectors.toMap(Object::getId, o -> o)); int id = ...; Object result = map.get(id);
这三种方法的效率不同,可以根据具体需求选择使用哪种方法。
附: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<>();结果也一样
List<String> resultList = new ArrayList<>();
resultList.add("success");
resultList.add("error");
resultList.add("success");
resultList.add("warn");
resultList.add("error");
//1.利用equals,通过循环对比来找出你要的元素如下图所示
int index = resultList.indexOf("warn");
System.out.println("index = " + index);
// index = 3
System.out.println(resultList.get(index));
//2.直接get,根据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);
}
}
}
}总结
到此这篇关于Java中list根据id获取对象的几种方式的文章就介绍到这了,更多相关Java list根据id获取对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
