【发布时间】:2017-03-06 05:39:27
【问题描述】:
我目前在Java tutorial oracle上学习Java Collections,遇到了下面这段
这些方法中的每一个都返回由指定集合备份的同步(线程安全)
Collection。为了保证串行访问,必须通过返回的集合完成对支持集合的所有访问。保证这一点的简单方法是不保留对支持集合的引用。使用以下技巧创建同步集合。List<Type> list = Collections.synchronizedList(new ArrayList<Type>());
我只是想知道,如果我有一个未同步的 Collection 实例(支持集合)并且包含一些数据,我想将这个 Collection 实例(支持支持集合)到一个同步集合中,但不想保留对支持集合的引用。怎么可能做到这一点?是否可以?如果是,这是人们通常会做的事情吗?
【问题讨论】:
-
如果您打算更改集合的状态,为什么不先复制它?
-
当然,您可以包装现有的集合。 最好不要持有对支持集合的引用,因为这样可以确保它不会被意外修改。
-
你的问题不清楚..你可以得到一个新的列表并轻松转储旧的列表
标签: java collections synchronization