在C#中,LinkedList(T)类不实现IList(T)接口.但是,List(T)类确实实现了IList(T).为什么会出现这种差异?从功能上讲,它们都是列表,所以这个设计选择看起来很奇怪.现在很难将实现从List(T)切换到LinkedList(T).
Eli*_*sha 27
IList<T>interface包含一个索引器,索引器不是你期望的功能LinkedList.
List<T>可以确保访问O(1)中的项目,LinkedList根据它的定义,它的结构不能提供对O(1)中项目的访问.
Arc*_*rus 12
查看链接列表的定义,您将理解.
主要问题,LinkedLists可以包含循环引用,因此没有索引.
链表是最简单和最常见的数据结构之一; 它们为几个重要的抽象数据结构提供了简单的实现,包括堆栈,队列,关联数组和符号表达式.
链接列表相对于传统阵列的主要好处是链接项的顺序可能与数据项存储在内存或磁盘上的顺序不同.因此,链接列表允许在列表中的任何位置插入和删除节点,并且操作数量恒定.
另一方面,链表本身不允许随机访问数据或任何形式的有效索引.因此,许多基本操作 - 例如获取列表的最后一个节点,或找到包含给定数据的节点,或定位应插入新节点的位置 - 可能需要扫描大多数列表元素.
| 归档时间: |
|
| 查看次数: |
4228 次 |
| 最近记录: |