我如何在java中的代码中使用静态工厂方法

时间:2013-04-26 07:06:51

标签: java collections

List<VO> list = new ArrayList<VO>();

我有另一个类型object[]的列表,其中包含近100个项目。然后我需要    迭代并将这些值放入vo。所以我写下面的代码。

for(Object[] obj:list1){
  VO vo = new VO();

   vo.setName(obj[0].toString);
    .....
}

这里我创建了100个对象。但是我听说创建太多的对象会减少    performance.Is有任何方法来减少对象没有。谢谢提前...

4 个答案:

答案 0 :(得分:1)

如果您的list最终必须有100个对不同VO个对象的引用,那么根据定义,您无法避免创建它们。

虽然创建太多的对象 确实会产生性能问题,但您现在可能不应该担心这一点。一般来说,创建100个对象非常便宜。您应该专注于编写清晰的代码,然后测量性能 - 只有在您获得工作之后才开始尝试考虑提高性能的复杂方法,但不能快速够了。

答案 1 :(得分:0)

不,基于给定的信息,如果没有为V0中的每个Object创建一个list1对象,就无法做到这一点。

但是,Java不应该放慢速度。 100个对象实际上是一个相当便宜的操作。

暂且不说:我建议为变量使用更好的名称。你的混乱和不必要的短暂。

答案 2 :(得分:0)

您可以在list1中保留对原始对象的引用,并保持list1可用,如下所示:

for(Object[] obj:list1){
  list.add((VO)obj);
}

或者:

List<VO> list = new ArrayList<VO>(list1);

答案 3 :(得分:0)

正式类型对象的真实类型是什么?当然,真正的类型不是对象,然后toString只会打印出ObjectID。我无法相信这就是你想要的。

那么,真正的类型是什么?不会对VO对象进行足够的类型转换吗?

List list =(new ArrayList())。addAll(list1);

假设list1仅包含VO对象。