Java 如何将一个列表中的更改反映到另一个列表中?
基本上,我试图做的是有一个支持列表,它可以从其他“子列表”中得到反映到它的所有更改。更详细地说,我想做的是:Java 如何将一个列表中的更改反映到另一个列表中?,java,list,collections,Java,List,Collections,基本上,我试图做的是有一个支持列表,它可以从其他“子列表”中得到反映到它的所有更改。更详细地说,我想做的是: public abstract class User { protected List<UserHandler> defaultHandlers } public class Customer extends User { // All changes made to this list should the one from the parent cl
public abstract class User
{
protected List<UserHandler> defaultHandlers
}
public class Customer extends User
{
// All changes made to this list should the one from the parent class
private List<CustomerHandler> userHandlers
}
public class Admin extends User
{
// Similarily with this one
private List<AdminHandler> adminHandlers
}
public interface UserHandler
public interface CustomerHandler extends UserHandler
public interface AdminHandler extends UserHandler
公共抽象类用户
{
受保护的列表默认处理程序
}
公共类客户扩展用户
{
//对此列表所做的所有更改都应该是来自父类的更改
私有列表用户处理程序
}
公共类管理扩展用户
{
//和这个一样
私有列表管理员处理程序
}
公共接口用户处理程序
公共接口CustomerHandler扩展了UserHandler
公共接口AdminHandler扩展了UserHandler
这样的功能可能吗?显而易见的答案是在
Customer
和Admin
中使用defaultHandlers
,因为它已经设置为protected
但是,如果您正在查找将修改defaultHandlers
的defaultHandlers
子列表,则可以使用list#subList
;从其:
列表子列表(int-fromIndex,int-toIndex)
返回此列表中指定的fromIndex(包含)和toIndex(独占)之间部分的视图。(如果fromIndex和toIndex相等,则返回的列表为空。)返回的列表由此列表支持,因此返回列表中的非结构更改将反映在此列表中,反之亦然。返回的列表支持此列表支持的所有可选列表操作
请记住,如果您的程序是多线程的,则需要处理同步。我认为您可以使用常规的
ArrayList
。您试过了吗?如果愿意,您可以通过创建自己的列表
实现来实现。从“返回的列表由此列表支持,因此返回的列表中的非结构更改会反映在此列表中,反之亦然。”似乎符合您的要求。您到底想做什么?同意@Mohsen;请解释您的实际用例。似乎有更好的方法来处理这个模型。