数组与ArrayList:动态使用

时间:2015-06-01 03:02:21

标签: java

ArrayLists和Vectors都在内部使用典型的数组。但是,这让我思考...当我在技术上使用数组做同样的事情时,为什么我会使用ArrayLists?方便是唯一的原因吗?性能关键型应用程序是否曾使用ArrayList?

任何提示都将不胜感激。

4 个答案:

答案 0 :(得分:3)

我认为有多种理由更喜欢列表而不是“在阵列上实现列表”或“使用数组”,但我认为这两个是最重要的:

  1. 列表比阵列更能支持泛型(你可以, ,在Bloch的“Effective Java”中读到它 - 请参阅http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html
  2. 如果你问到使用ArrayList而不是自己实现它 - 我发现很难相信你会比在openjdk(Item 25)中开发它的人做得更好。

答案 1 :(得分:1)

是的,性能关键型应用程序一直使用ArrayList。数组访问不是用Java编写的绝大多数程序中的主导因素。

ArrayList Collection接口比内置原始数组提供的功能更丰富。通过不必自己编写这些算法,这个额外的功能将节省您的开发时间和调试时间。

此外,许多程序员已经熟悉ArrayList Collection接口,因此利用现有的标准库,可以使代码更易于长期阅读和维护。

答案 2 :(得分:0)

一个原因是ArrayLists大小是动态的,而数组则不是。

答案 3 :(得分:0)

ArrayList 的内部实现仅限数组。但 ArrayList 是一个包装类,它增加了更多功能。直接处理Array时,这些功能不可用。

例如,

从数组中删除元素,如果您使用的是数组,则必须实现逻辑。但是如果你使用的是ArrayList,它会为你做删除。

向阵列添加元素: 如果您使用的是数组,则必须实现逻辑。但是使用ArrayList非常简单。

你会发现这个ArrayList类中有很多方法可以方便日常使用。

希望这会对你有所帮助。