Java中list根据id获取对象的几种方式

 更新时间:2023年07月11日 15:36:36   作者:老李的地下室  
这篇文章主要给大家介绍了关于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获取对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaWeb编程 Servlet的基本配置

    JavaWeb编程 Servlet的基本配置

    本文讲的是Servlet最基本的配置信息,相信对你一定有帮助
    2013-11-11
  • SpringBoot优先加载指定Bean的实现

    SpringBoot优先加载指定Bean的实现

    SpringBoot框架在启动时可以自动将托管的Bean实例化,一般情况下它的依赖注入特性可以正确处理Bean之间的依赖关系,无需手动指定某个 Bean优先创建实例,文中有详细的代码示例,需要的朋友可以参考下
    2023-05-05
  • Java数组转换为集合的相关方法

    Java数组转换为集合的相关方法

    在Java中我们经常需要将数组从一种类型转换为另一种类型,下面这篇文章主要给大家介绍了关于Java数组转换为集合的相关方法,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Java AQS中ReentrantLock条件锁的使用

    Java AQS中ReentrantLock条件锁的使用

    ReentrantLock继承了Lock接口, lock方法实际上是调用了Sync的子类NonfairSync(非公平锁)的lock方法。ReentrantLock的真正实现在他的两个内部类NonfairSync和FairSync中,默认实现是非公平锁
    2023-02-02
  • spring AOP实现@Around输出请求参数和返回参数

    spring AOP实现@Around输出请求参数和返回参数

    这篇文章主要介绍了spring AOP实现@Around输出请求参数和返回参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Spring的@Value如何从Nacos配置中心获取值并自动刷新

    Spring的@Value如何从Nacos配置中心获取值并自动刷新

    这篇文章主要介绍了Spring的@Value如何从Nacos配置中心获取值并自动刷新,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • SpringSecurity集成第三方登录过程详解(最新推荐)

    SpringSecurity集成第三方登录过程详解(最新推荐)

    在ThirdAuthenticationFilter 类的attemptAuthentication()方法中,我们通过authType类型,然后创建对应的Authentication实现来实现不同方式的登录,下面给大家分享SpringSecurity集成第三方登录过程,感兴趣的朋友一起看看吧
    2024-05-05
  • Thymeleaf中th:each及th:if使用方法解析

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

    这篇文章主要介绍了Thymeleaf中th:each及th:if使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • SSM框架通过mybatis-generator自动生成代码(推荐)

    SSM框架通过mybatis-generator自动生成代码(推荐)

    这篇文章主要介绍了SSM框架通过mybatis-generator自动生成代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • 关于Maven parent.relativePath说明

    关于Maven parent.relativePath说明

    Maven中的relativePath用于指定父项目pom.xml的相对路径,默认值为../pom.xml,这个配置帮助Maven在构建时定位父模块的位置,确保模块间的依赖关系正确,relativePath可以指向本地或远程仓库中的父项目,如果不需要寻找父项目,可以将其设置为空
    2024-09-09

最新评论