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获取对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java 实现限流器处理Rest接口请求详解流程

    Java 实现限流器处理Rest接口请求详解流程

    在工作中是否会碰到这样的场景,高并发的请求但是无法全部执行,需要一定的限流。如果你是使用的微服务框架,比如SpringCloud,可以使用Gateway增加限流策略来解决。本篇文章是在没有框架的情况实现限流器
    2021-11-11
  • 如何在Spring boot加入shiro支持

    如何在Spring boot加入shiro支持

    这篇文章主要介绍了如何在Spring boot加入shiro支持,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • java搭建一个Socket服务器响应多用户访问

    java搭建一个Socket服务器响应多用户访问

    本篇文章主要介绍了java搭建一个Socket服务器响应多用户访问,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Mybatis如何使用正则模糊匹配多个数据

    Mybatis如何使用正则模糊匹配多个数据

    这篇文章主要介绍了Mybatis如何使用正则模糊匹配多个数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java中的动态数组和栈Vector Stack使用区别介绍

    Java中的动态数组和栈Vector Stack使用区别介绍

    这篇文章主要为大家介绍了Java中的动态数组和栈Vector Stack使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • SpringMVC中请求参数的获取方式

    SpringMVC中请求参数的获取方式

    这篇文章主要为大家介绍了SpringMVC中请求参数的获取方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 在Java中使用下划线分隔数的字面值的用法讲解

    在Java中使用下划线分隔数的字面值的用法讲解

    这篇文章主要介绍了在Java中使用下划线分隔数字的字面值的用法讲解,这是Java7以后加入的新特性,需要的朋友可以参考下
    2016-03-03
  • MyBatis多对多一对多关系查询嵌套处理

    MyBatis多对多一对多关系查询嵌套处理

    这篇文章主要为大家介绍了MyBatis多对多一对多关系查询嵌套处理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Java Map接口概述和常用方法详解

    Java Map接口概述和常用方法详解

    现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。本文就来聊聊Map接口概述和常用方法
    2022-10-10
  • Java中的Spring循环依赖详情

    Java中的Spring循环依赖详情

    这篇文章主要介绍了Java中的Spring循环依赖详情,文章基于Java的相关资料展开详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04

最新评论