gpt4 book ai didi

java - 在云存储等对象之间共享对象中列表的元素(标准库)

转载 作者:行者123 更新时间:2023-11-30 01:59:16 25 4
gpt4 key购买 nike

   class User{
private String Nickname;
private String password;
private ArrayList<E> userdata;
// methods
}

我有很多用户,每个人都有自己的“用户数据”。我将允许通用用户“X”访问用户“Y”的某些元素。

我这样做了:

class User{
private String Nickname;
private String password;
private ArrayList<E> userdata;
private ArrayList<E> data_shared_from_other_users_to_me;
// methods
}

如果用户“Y”将被删除,则所有数据都将与他一起删除,因此我将被迫扫描其“data_shared_from_other_users_to_me”变量中包含“Y”元素的每个“用户”,然后删除它们。

是否有更好的解决方案来允许共享,并且在删除用户的情况下删除每个共享数据,而不是在每个用户内部查找它们?

最佳答案

  1. 添加embedded或独立的相对数据库并使用级联多对多关系
  2. 使用 2 个 HashMap ( Map<SuperUser, List<ObservableUser>>Map<ObservableUser, List<SuperUser>> )实现多对多关系。这将允许在 O(1) 内检索用户的共享数据并一次性删除关系。
  3. 您可以将可以查看当前用户数据的用户列表( super 用户)添加到用户个人资料中(my_data_is_shared_with - 列表),并在个人资料删除时仅迭代这些用户
  4. 删除用户时,首先将其所有用户数据设置为 null。然后为 super 用户实现一个 getter,它将返回 data_shared_from_other_users_to_me.stream().filter(Object::notNull).collect(toList()) 并在修改时更新它(一些空值被过滤掉)

关于java - 在云存储等对象之间共享对象中列表的元素(标准库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53439525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com