English 中文(简体)
Java按价值分列的物体清单
原标题:Copying List of objects by value in Java

我有一个在构造中获得物体清单的班子,List<Object>。 每一次名单都可从不同类型中删除。 它具有某种通用性,我不知道其类别是什么。

在让用户改变其价值之前,我想自封这份清单。 但是,由于复印件是参考文件进行的,因此正在对两份清单(原始和复印件)进行修改。

How can I copy my list by value?

问题回答

Your question is not clear.

  • 如果您希望有一份复印件(即一份清单的复印件,其中将提及原清单中的物体,则clone。 工作方式,还有一份在<代码>上的复印件。 清单执行类别。

  • 如果你想得到一份深重的份数(即载有原标本的份数清单的影印件),那么,你的最佳要点就是制作一份新清单,并用原清单内容的印章。 然而,有一只鱼。 default/条形法没有规定。 很多共同用途类别是可布置的,按习俗分类,除非你执行。 如果你名单含有任何不可核查的物品,你在操作时将例外。

除<条码>clone外,还有其他深度的替代品,但就象克隆技术一样,这些替代品并不与所有类别合作。 事实上,如果你的解决办法必须是一般性的,那是问题的关键。

页: 1 清单,然后在清单中添加每个内容的斜体。

List<Object> copy = new ArrayList<Object>(inputList.size());
for (Object item : inputList) {
   copy.add(item.clone());
}

显然,你需要核实你名单上的物体为Cloneable 。 否则,他们获得的拖车是正确的。

通过通过通过名单并公布其内容,以建立一个新的清单,然后在不修改原始清单的情况下加以使用。

private List<Object> clone;
public Foo(List<Object> original)
{
  this.clone = new ArrayList<Object>(list.size());
  for(Object item: original)
  { 
   clone.add(item.clone());
  }
}

如果您的反对没有包含其他物体的任何提及,你可以使用目标,但如不使用,你需要做深刻的限定。

在这些情况下,有三种共同的解决办法:

(1) 如果你知道,每个要素有clone()方法,你打算使用这些方法,创造新的阵容,并填充相应的每一件。 作为umb,“基本”物体,如Stings、编号代表等,应处以罚款。 衣物的一个不利之处是,它带有松散的 can子:你不知道,如果某种特定类别的方法被压倒,那么 clo的深度如何,以及可能重新使用或不使用什么提法。 它还有一个特别的danger,即在其构造中依赖逻辑的可装饰物体的子类别,不得工作。 但正如我所说的那样,单纯的JDK物体应当被罚款。

(2) <>Serialise. list to an ObjectOutputStream Packped around a ByteArrayOutputStream. 接着将由此形成的星阵列,并包罗周围的拜特阿雷拉射线和物体发射器,并从中读出一份新的深厚的清单。

(3) 在理想世界中,制定一份新清单,填写在上,该清单明确创造了有关物体的“拷贝”。 如果这不过于繁琐,这是理想的解决办法,因为你知道实际上正在做些什么:就意外重新参照的物体而言,没有隐藏的意外事故,而不是因为如你所期望的那样,一种衣物(......)方法不奏效。

由于你有一个简单的集装箱物体(一个阵列清单),其结构可以轻而易举地重新计算,因此,(2)可能具有超高性能。 重组更复杂的结构是多余的。

请参看,特别是怀疑第三方图书馆的克隆物体:,其中考虑到这些物体的专有布条。 问题在于,人们很容易将JDK(可归结的)类或其它类装成衣。 在我的经验中,布莱恩()有一些微妙之处,即许多开发商不知道(例如,建筑商没有把新物体提上)这可能导致不可预见的问题。 因此,如果你实际上看不出可靠的来源代码,以确保衣物安全,我将避免。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签