java的链表类,java的链表是如何实现的

  java的链表类,java的链表是如何实现的

  LinkedList使用循环双向链表数据结构。与基于数组的ArrayList相比,这是两种完全不同的实现技术,这也决定了它们将适用于完全不同的工作场景。

  如何解决写爬虫IP受阻的问题?立即使用。

  链表是一种常见的基本数据结构,是一种线性表。但是,它不是以线性顺序存储数据,而是存储指向每个节点中下一个节点的指针。

  使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的动态内存管理。但是链表失去了随机读取数组的优势,而且因为增加了节点的指针字段,链表的空间开销比较大。

  实例:

  包com . ys . link;

  公共类DoublePointLinkedList {

  私有节点头;//头节点

  私有节点尾;//尾节点

  私有int大小;//节点的数量

  私有类节点{

  私有对象数据;

  私有节点next

  公共节点(对象数据){

  this.data=data

  }

  }

  public DoublePointLinkedList(){

  大小=0;

  head=null

  tail=null

  }

  //向链接列表头添加新节点

  公共void addHead(对象数据){

  Node node=新节点(数据);

  If(size==0){//如果链表为空,那么头节点和尾节点就是新增的节点。

  头=节点;

  尾=节点;

  尺寸;

  }否则{

  node.next=head

  头=节点;

  尺寸;

  }

  }

  //在链表的末尾添加一个新节点

  公共void addTail(对象数据){

  Node node=新节点(数据);

  If(size==0){//如果链表为空,那么头节点和尾节点就是新增的节点。

  头=节点;

  尾=节点;

  尺寸;

  }否则{

  tail.next=node

  尾=节点;

  尺寸;

  }

  }

  //删除头节点,成功返回true,失败返回false。

  public boolean deleteHead(){

  If(size==0){//当前链表中的节点数为0

  返回false

  }

  If(head.next==null){//当前链表中的节点数为1

  head=null

  tail=null

  }否则{

  head=head.next

  }

  尺寸-;

  返回true

  }

  //确定它是否为空。

  public boolean isEmpty(){

  return(size==0);

  }

  //获取链表中的节点数

  public int getSize(){

  返回大小;

  }

  //显示节点信息

  公共void显示(){

  如果(大小为0){

  Node node=头;

  int tempSize=size

  If(tempSize==1){//当前链表只有一个节点。

  system . out . println([ node . data ]);

  返回;

  }

  while(tempSize0){

  if(node.equals(head)){

  system . out . print([ node . data -);

  }else if(node.next==null){

  system . out . print(node . data ]);

  }否则{

  system . out . print(node . data -);

  }

  node=node.next

  tempSize-;

  }

  system . out . println();

  }else{//如果链表中没有节点,打印[]

  system . out . println([]);

  }

  }

  }以上是java中什么是链表的详细介绍。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: