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中int和Integer的区别及自动装箱和自动拆箱

    详谈java中int和Integer的区别及自动装箱和自动拆箱

    这篇文章主要介绍了详谈java中int和Integer的区别及自动装箱和自动拆箱,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 深扒Java中POJO、VO、DO、DTO、PO、BO、AO、DAO的概念和区别以及如何应用

    深扒Java中POJO、VO、DO、DTO、PO、BO、AO、DAO的概念和区别以及如何应用

    po vo bo dto dao 和 pojo 是软件开发中经常使用的一些概念,用于设计和实现对象模型,下面将分别解释这些概念的含义及其在开发中的应用,这篇文章主要给大家介绍了关于Java中POJO、VO、DO、DTO、PO、BO、AO、DAO的概念和区别以及如何应用的相关资料,需要的朋友可以参考下
    2024-08-08
  • Java语言的11大特点(Java初学者必知)

    Java语言的11大特点(Java初学者必知)

    Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的静态语言。这篇文章主要介绍了Java语言的11大特点,需要的朋友可以参考下
    2020-07-07
  • 深入同步访问共享的可变数据分析

    深入同步访问共享的可变数据分析

    本篇文章是对同步访问共享的可变数据进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • java Map接口子类HashMap遍历与LinkedHashMap详解

    java Map接口子类HashMap遍历与LinkedHashMap详解

    这篇文章主要介绍了java Map接口子类HashMap遍历与LinkedHashMap详解,Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,感兴趣的小伙伴可以参考下面文章详细内容介绍
    2022-06-06
  • 有关ThreadLocal的面试题你真的懂了吗

    有关ThreadLocal的面试题你真的懂了吗

    这篇文章主要介绍了面试题ThreadLocal,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-06-06
  • Java实现优雅日期处理的方案详解

    Java实现优雅日期处理的方案详解

    在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • java如何确定一个链表有环及入口节点

    java如何确定一个链表有环及入口节点

    这篇文章主要介绍了java如何确定一个链表有环及入口节点,想了解数据结构的同学可以参考下
    2021-04-04
  • Maven实现项目构建工具

    Maven实现项目构建工具

    本文主要介绍了Maven实现项目构建工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Java多线程中Lock锁的使用总结

    Java多线程中Lock锁的使用总结

    这篇文章主要介绍了Java多线程中Lock锁的使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论