我可以拥有一个对象类型的 ArrayList ,它具有指向 Java 中对象的指针列表吗?

火花

我目前有三个对象类,交易、用户和组。交易收集:ID、谁支付、日期、描述、金额和涉及用户 ID 的 ArrayList。这工作得很好,但通过遍历用户的方法添加了许多代码行以查找哪个用户是谁。我的问题是,我可以有一个 ArrayList *partecipants = new ArrayList; 哪个有所有用户的参考?

class Transaction{
    private static AtomicInteger count = new AtomicInteger(0);
    private int id = count.incrementAndGet();
    private String paid;
    private Date date;
    private String message;
    private Double amount;
    private ArrayList<Integer> users = new ArrayList<Integer>();
约翰16384

一个简短的例子:

假设您有一个简单的User类:

public class User {
    private int id;
    private String name;

    // etc
}

假设您最初拥有以下其中一个List

List<User> users;

通过 id 查找用户可以这样完成:

users.stream().filter(u -> u.getId() == id).findFirst();

但是,如果用户列表很大,那可能会很慢。

您可以将用户存储在一个Map

Map<Integer, User> usersById;

这个映射只会引用其他对象,所以占用的空间很小(但仍然占用一些,就像一个索引)。

你可以像这样填充这张地图:

usersById = users.stream().collect(Collectors.toMap(User::getId, Function.identity()));

或者更传统地:

usersById = new HashMap<>();

for(User u : users) {
    usersById.put(u.getId(), u);
}

要立即按 id 查找用户,您可以使用它(具有O(1)性能):

User user = usersById.get(id);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一个ArrayList中有多种对象类型

来自分类Dev

我可以序列化一个ArrayList而不序列化持有的对象吗?

来自分类Dev

如何从另一个对象修改对象的私有ArrayList属性(Java)

来自分类Dev

我如何拥有一个可以是具有相同方法的任何类的对象?

来自分类Dev

将Arraylist中的对象替换为Arraylist中的另一个现有对象

来自分类Dev

如何创建一个可以在Java中存储多个数据类型对象的arraylist类

来自分类Dev

为什么我不能拥有指向与成员变量具有相同指针类型的对象的指针?

来自分类Dev

将coq类型nat提取到哪种ocaml中,以便我可以拥有一个经过认证的程序

来自分类Dev

创建具有多个对象类型的ArrayList?

来自分类Dev

具有不同类型对象的ArrayList

来自分类Dev

JAVA ArrayList从ArrayList方法检索所有对象

来自分类Dev

初始化没有对象类型的arraylist - JAVA

来自分类Dev

Java中的ArrayList仅打印列表中的最后一个对象

来自分类Dev

Java中是否有一个地图或列表可以将两个对象相互关联?

来自分类Dev

我可以在ncyBreadcrumb中拥有一个动态的父母吗?

来自分类Dev

在java中将具有多种变量类型的对象传递到arraylist时遇到麻烦

来自分类Dev

结构可以具有一个成员,该成员是指向相同类型结构的指针吗?

来自分类Dev

我可以在 Android 上拥有一个没有布局的应用页面吗?

来自分类Dev

使用Java Streams,我可以基于与具有相同变量的辅助对象列表共享的变量来过滤对象列表吗?

来自分类Dev

我可以在Java的Enum中拥有像Swift这样的函数类型吗?

来自分类Dev

拥有一个属性可以是任何遵守特定协议的对象

来自分类Dev

如果我有一个指向它的指针,而不是一个迭代器,我如何删除它?

来自分类常见问题

将具有两个单独字符串的对象添加到Java中的ArrayList中

来自分类Dev

我可以拥有一个无锁的lambda队列吗?

来自分类Dev

我可以在Linux主机上拥有一个自托管的VPN吗?

来自分类Dev

我们可以拥有一个以上的工人流程吗?

来自分类Dev

Java中具有泛型声明的ArrayList

来自分类Dev

在 Ruby 中,我可以拥有一个可以在特定模块中的任何类中使用的方法吗

来自分类Dev

Java中的对象和ArrayList

Related 相关文章

  1. 1

    一个ArrayList中有多种对象类型

  2. 2

    我可以序列化一个ArrayList而不序列化持有的对象吗?

  3. 3

    如何从另一个对象修改对象的私有ArrayList属性(Java)

  4. 4

    我如何拥有一个可以是具有相同方法的任何类的对象?

  5. 5

    将Arraylist中的对象替换为Arraylist中的另一个现有对象

  6. 6

    如何创建一个可以在Java中存储多个数据类型对象的arraylist类

  7. 7

    为什么我不能拥有指向与成员变量具有相同指针类型的对象的指针?

  8. 8

    将coq类型nat提取到哪种ocaml中,以便我可以拥有一个经过认证的程序

  9. 9

    创建具有多个对象类型的ArrayList?

  10. 10

    具有不同类型对象的ArrayList

  11. 11

    JAVA ArrayList从ArrayList方法检索所有对象

  12. 12

    初始化没有对象类型的arraylist - JAVA

  13. 13

    Java中的ArrayList仅打印列表中的最后一个对象

  14. 14

    Java中是否有一个地图或列表可以将两个对象相互关联?

  15. 15

    我可以在ncyBreadcrumb中拥有一个动态的父母吗?

  16. 16

    在java中将具有多种变量类型的对象传递到arraylist时遇到麻烦

  17. 17

    结构可以具有一个成员,该成员是指向相同类型结构的指针吗?

  18. 18

    我可以在 Android 上拥有一个没有布局的应用页面吗?

  19. 19

    使用Java Streams,我可以基于与具有相同变量的辅助对象列表共享的变量来过滤对象列表吗?

  20. 20

    我可以在Java的Enum中拥有像Swift这样的函数类型吗?

  21. 21

    拥有一个属性可以是任何遵守特定协议的对象

  22. 22

    如果我有一个指向它的指针,而不是一个迭代器,我如何删除它?

  23. 23

    将具有两个单独字符串的对象添加到Java中的ArrayList中

  24. 24

    我可以拥有一个无锁的lambda队列吗?

  25. 25

    我可以在Linux主机上拥有一个自托管的VPN吗?

  26. 26

    我们可以拥有一个以上的工人流程吗?

  27. 27

    Java中具有泛型声明的ArrayList

  28. 28

    在 Ruby 中,我可以拥有一个可以在特定模块中的任何类中使用的方法吗

  29. 29

    Java中的对象和ArrayList

热门标签

归档