LinkedList 遍历为什么不能用for 而要用iterator 请详解 并对比ArrayList ,在哪些情景下怎么选择
时间: 2024-04-06 13:33:27 浏览: 40
LinkedList和ArrayList都是Java中常用的集合类,它们都可以存储大量的元素,但它们的实现方式不同。
ArrayList是通过数组来存储元素的,所以它的随机访问效率比较高,但在插入和删除元素时需要移动大量的元素,效率比较低。
LinkedList是通过链表来存储元素的,所以它的插入和删除元素的效率比较高,但随机访问元素时需要遍历整个链表,效率比较低。
由于LinkedList不能通过下标来访问元素,因此我们不能直接使用for循环来遍历LinkedList。相反,我们需要使用Iterator来遍历LinkedList中的元素。Iterator是Java集合框架中的一个接口,它提供了一种访问集合中元素的方式,可以避免直接访问集合中的元素,从而保证了集合的安全性。
在选择ArrayList和LinkedList时,需要根据具体的情况来考虑。如果需要经常进行随机访问元素,那么最好选择ArrayList;如果需要频繁地进行插入和删除操作,那么应该选择LinkedList。另外,如果需要对集合进行迭代操作,那么可以选择使用Iterator来遍历集合中的元素。
阅读全文