使用LinkedList泛型类声明、创建链表时,必须要指定E的具体类型, 然后链表就可以使用add(E obj)方法向链表依次增加节点。
时间: 2024-03-31 22:32:02 浏览: 9
是的,使用LinkedList泛型类声明、创建链表时,需要指定E的具体类型,如LinkedList<String> list = new LinkedList<String>();。这样就创建了一个存储字符串的链表,可以使用add(E obj)方法向链表依次增加节点。其中的E即代表元素的类型,可以是任何Java数据类型,包括自定义的类。在使用add(E obj)方法时,需要传入与链表声明时指定的E类型相同的对象,否则会编译错误。
相关问题
链表LinkedList 的方法
1. addFirst(E e): 将元素e添加到链表头部
2. addLast(E e): 将元素e添加到链表尾部
3. add(int index, E e): 将元素e插入到指定索引位置index
4. removeFirst(): 删除链表的头节点
5. removeLast(): 删除链表的尾节点
6. remove(int index): 删除指定索引位置index的节点
7. get(int index): 获取指定索引位置index的节点值
8. set(int index, E e): 将指定索引位置index的节点值设置为e
9. size(): 返回链表的元素个数
10. isEmpty(): 判断链表是否为空
11. clear(): 清空链表
12. toArray(): 将链表转换为数组
循环链表以即使用场景,arraylist 和linkedlist(数据结构上)使用区别
循环链表的使用场景:
1. 约瑟夫问题:n个人围成一圈,从第一个人开始报数,报到m的人出圈,下一个人重新从1开始报数,直到最后只剩下一个人。循环链表可以很好地解决这个问题。
2. 环形缓冲区:循环链表可以用来实现环形缓冲区,当缓冲区满了后,可以继续添加数据,新的数据会覆盖最早的数据。
3. 循环队列:循环链表可以用来实现循环队列,可以很好地解决队列满了后不能再添加元素的问题。
ArrayList 和 LinkedList 的使用区别:
1. 底层数据结构不同:ArrayList 底层是数组,LinkedList 底层是链表。
2. 插入和删除操作的性能不同:ArrayList 在中间插入或删除元素时效率不高,因为需要移动其他元素;而 LinkedList 在中间插入或删除元素时效率比较高,因为只需要改变前后元素的指向即可。
3. 随机访问的性能不同:ArrayList 支持随机访问,因为它底层是数组,可以通过下标快速访问元素;而 LinkedList 不支持随机访问,因为它底层是链表,需要从头节点开始遍历才能访问到指定位置的元素。
4. 内存占用不同:ArrayList 的内存占用比 LinkedList 高,因为 ArrayList 维护了一个连续的数组,而 LinkedList 维护了一个链表结构。