Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将一个列表中的更改反映到另一个列表中?_Java_List_Collections - Fatal编程技术网

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;请解释您的实际用例。似乎有更好的方法来处理这个模型。