当前位置: 首页 > 知识库问答 >
问题:

如何从对象数组中获取对象,基于对象字段[复制]

戈念
2023-03-14

我有个简单的课

class Employee {
    private String id;
    private String name;
    private String address;

    Employee(String id) {
        this.id = id;
    }
}

我创建了这个类的样本对象的ArrayList

List<Employee> employees = new ArrayList<>();

employees.add(new Employee("101"));
employees.add(new Employee("106"));
employees.add(new Employee("108"));

这里没有显示我后来如何填充对象的其他字段(名称,地址等)

有没有一种方法可以使用字母数字字符串id快速检索其中一个对象,而无需遍历整个列表?(没有实现数据库层)

差不多

employees.getById("101");

共有2个答案

闾丘照
2023-03-14
//ArrayList of Employees:
List<Employee> employees = new ArrayList<>();
employees.add(new Employee("101". "Name101", "Address101"));


//As of Java 8, to find an element matching specific criteria in list:
Employee getById("101"); // return Employee with id "101"

private Employee getById(String id) {
   return employees.stream()  // invoke stream() on the list
    .filter(employee-> id.equals(employee.getId()))  //  method with a proper predicate
    .findAny() // which returns the first element that matches the filter predicate wrapped in an Optional if such an element exists
    .orElse(null); // return null if not exist
}
郎长卿
2023-03-14

你可以用一张地图

将对象放入地图

Map<String,Employee> employees = new HashMap<>();

// employees.put({key},{object});
employees.put("101",new Employee("101"));
employees.put("106",new Employee("106"));
employees.put("108",new Employee("108"));

从地图中检索任何对象

employees.get("101"); // will return your Employee 101
 类似资料:
  • 父类: 子电话对象(第一级): 我正在尝试获取person对象,其phone对象类型为home,其编号应包含“888”。 从上面的流代码,我能够得到手机对象。但是如何在相同的函数中获得该电话对象的父对象呢?。 我尝试了这种方式,我得到null不匹配的对象。

  • 我有这个初始数组,希望根据和提取重复航班 我写了这个,但我只能得到第一个重复的,看起来不是很漂亮。 有什么建议吗?

  • 在我的角度 this.device返回对象。每个对象都包含一个字段,并且在所有15个对象上都有不同的值。如果我可以访问underscore.js,我就会这样做,但是在这个项目中,我没有它。 什么是JS的方法来访问它而不需要执行for循环?

  • 如何从对象获取数组?我试图进入空数组,这样我就可以验证它的空状态。 输出

  • 问题内容: 问题在于确定以下符号之间的权衡: 基于JSON : 基于数组 : 关于同一问题的这篇文章,我已经决定(在前端)使用JSON对象表示法而不是对象数组,因为它符合我的要求,更好的性能和更少的浏览器代码。 但是问题在于列表本身不是静态的。我的意思是,该列表正在生成,即从DB(NoSQL)获取/存储,并通过服务器上的JavaAPI为新条目创建。我无法决定在后端应使用哪种表示法(最终也会影响UI

  • 问题内容: 如何按其字段之一(例如或)对对象数组进行排序? 问题答案: 使用usort,这是从手册改编而成的示例: 您还可以将任何callable用作第二个参数。这里有些例子: 使用匿名函数(来自PHP 5.3) 从班级内部 使用箭头函数(来自PHP 7.4) 另外,如果要比较数字值,则应使用“比较”功能。