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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。