java:构造ArrayList的不同方法

时间:2012-01-20 09:51:43

标签: java web-services

我开发了一个WebService,每次1000个用户都可以访问它,因为它是一个财务应用程序。 在代码中,我创建了一个ArrayList,如图所示

List Items = new ArrayList();

从代码的角度来看,我正在使用STAX解析器解析XML文件,解析XML,从XML构造对象并将其放入此ArrayList(Items)。

最后我将这个ArrayList设置在Request Object中并使用它。

这一切都运行正常,现在我的问题是,如果我用这种方式构造一个ThreadSafe ArrayList并使用这个

List Items  = (List) Collections.synchronizedList(new ArrayList());

请告诉我,从性能的角度来看,或者在任何情况下是否会有任何差异?哪种方法最好

请分享您的经验和观点。

谢谢

2 个答案:

答案 0 :(得分:5)

如果不需要同步列表,则创建同步列表没有意义。如果它需要同步,那么性能并不重要,因为它比较快,不正确的程序更适合使用更慢,更正确的程序。

您不会根据性能注意事项选择使用同步列表。您可以根据并发环境中的正确性考虑选择它。

如果你有线程安全问题,那就不是随机添加一些同步它会更好地工作。你必须了解这一切是如何运作的。阅读(至少)Java tutorial about concurrency

答案 1 :(得分:0)

鉴于你正在解析XML,它在CPU和内存上非常,你使用的集合并不重要 - 它在性能上没有任何可衡量的差异