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

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

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

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

在这里我创建了 100 个对象。但我听说创建太多对象会降低
性能。有什么办法可以减少这里的对象。提前谢谢...

4

4 回答 4

1

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

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

于 2013-04-26T07:09:28.283 回答
0

不,根据给定的信息,如果不V0为每个Objectin创建一个对象,就无法做到这一点list1

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

顺便说一句:我建议为您的变量使用更好的名称。您的内容令人困惑且不必要地简短。

于 2013-04-26T07:09:26.793 回答
0

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

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

或者:

List<VO> list = new ArrayList<VO>(list1);
于 2013-04-26T07:09:37.247 回答
0

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

那么,真正的类型是什么?对 VO 对象的类型转换还不够吗?

列表列表 = (new ArrayList()).addAll(list1);

假设 list1 仅包含 VO 对象。

于 2013-04-26T07:26:48.250 回答