Java LinkedList基本用法以及代码演示

一、概括
LinkedList与ArrayList一样,LinkedList也实现了List接口,诸如add,remove,contains等等方法,这些方法,已经在自己其他博客ArrayList常用方法中进行总结。除了实现了List接口外,LinkedList还实现了双向链表结构Deque,可以很方便的在头尾插入删除数据。
链表:与数组相比较,数组中元素的存储位置是连续的,而链表是不连续的,是通过指针将不连续的节点连起来。
二、LinkedList构造方法
1. public LinkedList(): ——生成空的链表
2. public LinkedList(Collection col): 复制构造函数
三、LinkedList常用方法操作
其中add方法与ArrayList中的add方法相似,也可以通过add(index,element)在指定位置加入

 private static void LinkedListTest() {
		LinkedList<User> ll=new LinkedList<User>();
		ll.add(new User("士兵 1"));
		ll.add(new User("士兵 2"));
		System.out.println(ll);
//		在链表前面加入对象
		ll.addFirst(new User("军官"));
		//在链表后面加入对象
		ll.addLast(new User("士兵 3"));
		System.out.println(ll);
//		查看第一个
		System.out.println(ll.getFirst());
//		查看最后一个
		System.out.println(ll.getLast());
//		查看不会导致对象被删除
		System.out.println(ll);
//		取出链表第一个对象
		System.out.println(ll.removeFirst());
//		取出链表最后一个对象
		System.out.println(ll.removeLast());
//		取出会导致对象被删除
		System.out.println(ll);
	}

四、使用LinkedList实现栈的效果

public static void main(String[] args) {
//		LinkedListTest();
		LinkedStackTest();
	}
	private static void LinkedStackTest() {
		// TODO Auto-generated method stub
		 StackL stack = new StackL();  
		 for (int i = 0; i < 10; i++)  {
		      stack.push(new User("士兵 "+i)); 
	     }
		 System.out.println(stack.pop());
		 System.out.println(stack.top());
	}
	public class StackL {
		private LinkedList list=new LinkedList();
		public void push(Object v) {  
		    list.addFirst(v);  
		  }  
		  public Object top() {  
		    return list.getFirst();  
		  }  
		  public Object pop() {  
		    return list.removeFirst();  
		  }  
}

五、使用LinkedList实现队列的效果

public class QueueL {
	private LinkedList list = new LinkedList();

	public void push(Object v) {
		list.addFirst(v);
	}

	public Object top() {
		return list.removeLast();
	}

	public boolean isEmpty() {
		return list.isEmpty();
	}
}
public static void main(String[] args) {
//		LinkedListTest();
//		LinkedStackTest();
		LinkedQueueTest();
	}
	private static void LinkedQueueTest() {
		 QueueL queue = new QueueL();  
		 for (int i = 0; i < 10; i++)  {
		      queue.push((new User("士兵 "+i)));
	     }
		 if(!queue.isEmpty())
			 System.out.println(queue.top());
	}

推荐学习网站
自学能力强的,可以通过这个网站去学习java,里面内容比较全面
https://how2j.cn/p/5984

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值