我一直在尝试比较列表的定义及其在 Java 中的实现,因为我觉得不匹配。
列表数据结构的定义:列表或序列是一种抽象数据类型,它实现了值的有序集合,其中相同的值可能出现多次。[取自:http://en.wikipedia.org/wiki/List_(abstract_data_type) ]
现在有序集合维护元素插入的顺序。
List -> ArrayList的 Java 实现:根据这个实现,我有以下几点:
- 如果我初始化一个
ArrayList
大小为 5 的元素,那么我不能直接在第 5 个位置插入元素而不在位置 1、2、3、4 插入元素,因为这将违反排序原则。所以Java在这里给出了我完全同意的例外。 ArrayList
提供了诸如“set(int index, E element)”和“add(int index, E element)”之类的方法,我们可以使用它们替换列表中间的元素,也可以在列表中间插入新元素。我不明白。由于不维护插入顺序,因此违反了排序原则。
我觉得第 1 点和第 2 点相互冲突,而第 2 点违反了排序原则,或者我可能遗漏了一些东西。
有人可以解释一下我对List
这里的理解哪里出错了吗?