当前位置: 面试刷题>> 动态数组ArrayList (经典算法题500道)


### 题目描述补充 **题目**: 实现一个动态数组(ArrayList)的基本功能 **要求**: 1. 实现一个动态数组类,支持以下基本操作: - `append(element)`: 向数组末尾添加一个元素。 - `insert(index, element)`: 在指定索引位置插入一个元素,索引从0开始,若索引超出当前数组长度,则添加到末尾。 - `remove(index)`: 删除指定索引位置的元素,并返回该元素。如果索引超出范围,则返回错误或特定值(如`null`)。 - `get(index)`: 获取指定索引位置的元素。如果索引超出范围,则返回错误或特定值(如`null`)。 - `size()`: 返回数组中元素的数量。 - `isEmpty()`: 判断数组是否为空。 **注意**: 动态数组需要能够自动扩容以适应元素数量的增加,同时保持元素的顺序。 ### PHP 示例代码 ```php class ArrayList { private $elements; public function __construct() { $this->elements = []; } public function append($element) { $this->elements[] = $element; } public function insert($index, $element) { if ($index > count($this->elements)) { $this->append($element); } else { array_splice($this->elements, $index, 0, [$element]); } } public function remove($index) { if ($index >= 0 && $index < count($this->elements)) { return array_splice($this->elements, $index, 1)[0]; } return null; // 索引超出范围 } public function get($index) { if ($index >= 0 && $index < count($this->elements)) { return $this->elements[$index]; } return null; // 索引超出范围 } public function size() { return count($this->elements); } public function isEmpty() { return empty($this->elements); } } // 使用示例 $arrayList = new ArrayList(); $arrayList->append(1); $arrayList->insert(0, 0); echo $arrayList->get(0); // 输出 0 echo $arrayList->size(); // 输出 2 ``` ### Python 示例代码 ```python class ArrayList: def __init__(self): self.elements = [] def append(self, element): self.elements.append(element) def insert(self, index, element): if index > len(self.elements): self.elements.append(element) else: self.elements.insert(index, element) def remove(self, index): if 0 <= index < len(self.elements): return self.elements.pop(index) return None # 索引超出范围 def get(self, index): if 0 <= index < len(self.elements): return self.elements[index] return None # 索引超出范围 def size(self): return len(self.elements) def isEmpty(self): return len(self.elements) == 0 # 使用示例 array_list = ArrayList() array_list.append(1) array_list.insert(0, 0) print(array_list.get(0)) # 输出 0 print(array_list.size()) # 输出 2 ``` ### JavaScript 示例代码 ```javascript class ArrayList { constructor() { this.elements = []; } append(element) { this.elements.push(element); } insert(index, element) { if (index > this.elements.length) { this.append(element); } else { this.elements.splice(index, 0, element); } } remove(index) { if (index >= 0 && index < this.elements.length) { return this.elements.splice(index, 1)[0]; } return null; // 索引超出范围 } get(index) { if (index >= 0 && index < this.elements.length) { return this.elements[index]; } return null; // 索引超出范围 } size() { return this.elements.length; } isEmpty() { return this.elements.length === 0; } } // 使用示例 const arrayList = new ArrayList(); arrayList.append(1); arrayList.insert(0, 0); console.log(arrayList.get(0)); // 输出 0 console.log(arrayList.size()); // 输出 2 ``` **码小课网站中有更多相关内容分享给大家学习**,涵盖数据结构、算法等进阶知识,助力大家编程技能的提升。
推荐面试题