目录
1、 请问Collection接口下有哪些类型的集合?它们分别是什么? 各自特点是什么?
2、使用迭代器遍历集合过程中,如果删除数据, 会发生什么? 如何解决?
3、假设有一个存放Student对象的List,在堆内存中,集合里面存的是什么?
4、ArrayList和LinkedList的区别是什么? 分别适合什么场景?
1、 请问Collection接口下有哪些类型的集合?它们分别是什么? 各自特点是什么?
collection:
list:
有序,可重复
set:
无序,不可重复
map:
2、使用迭代器遍历集合过程中,如果删除数据, 会发生什么? 如何解决?
在编程中,使用迭代器遍历集合时删除数据可能会导致不可预测的行为,因为迭代器依赖于集合的当前状态。当你在遍历过程中删除元素时,集合的结构会改变,这可能会导致迭代器失效,或者导致迭代器访问到已经被删除的元素,从而抛出异常。
具体会发生什么,取决于你使用的编程语言和集合类型。以下是一些常见的情况:
迭代器失效:
在某些语言中,如Java,当你在遍历集合时删除元素,迭代器可能会立即失效。这意味着如果你尝试使用这个失效的迭代器继续遍历,可能会抛出ConcurrentModificationException
。
跳过元素:
在某些情况下,迭代器可能会自动调整,以跳过被删除的元素,但这并不是所有语言和集合类型都支持的行为。
访问已删除的元素:
在某些情况下,迭代器可能会尝试访问已经被删除的元素,这可能会导致程序崩溃或者行为异常