Java LinkedList

1. LinkeList

 

 

package com.qf.demo01;

import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.SynchronousQueue;
/*
 * 接口A:
 * 	add()
 * 接口B:
 * 	addFirst()
 * 实现类C:implements A,B
 * 
 * A a = new C();//add()
 * B b = new C();//addFrist()
 * C c = new C();//add(),addFirst()..
 */
public class Test2LinkedList {

	public static void main(String[] args) {
		LinkedList<String> l1 = new LinkedList<>();
		
		l1.add("aaa");
		l1.add(0, "bbb");//List
		System.out.println(l1);
		l1.addFirst("ccc");//向容器的开头,添加元素,Deque
		System.out.println(l1);
		l1.addLast("ddd");//向容器的末尾,添加元素,Deque
		System.out.println(l1);
		
		System.out.println(l1.element());//获取容器中的第一个元素,不删除
		System.out.println(l1);
		
		System.out.println(l1.getFirst());//效果同element()
		System.out.println(l1);
		
		System.out.println(l1.getLast());//获取最后一个元素
		System.out.println(l1);
		
		l1.offer("eee");//向容器后添加元素
		System.out.println(l1);
		
		System.out.println(l1.peek());//效果同element()
		System.out.println(l1);
		
		System.out.println(l1.poll());//获取容器中的第一个元素,并从容器中删除
		System.out.println(l1);
		
		System.out.println(l1.pop());//获取栈顶元素,并移出。
		System.out.println(l1);
		
		
	}

}

2. 模拟栈

package com.qf.demo01;

import java.util.LinkedList;

public class Test3LinkedList {

	public static void main(String[] args) {
		/*
		 * 栈:一种数据结构。存储数据的特点:LIFO
		 * 后进先出
		 */
		
		LinkedList<String> stack = new LinkedList<>();
		stack.push("aaa");//入栈,压栈,将元素存入到栈中
		stack.push("bbb");
		stack.push("ccc");
		System.out.println(stack);
		
		//获取-->弹栈,出栈,永远出的是栈顶元素----大白话:获取
		String s1 = stack.pop();
		System.out.println(s1);//弹栈,出栈,ccc
		System.out.println(stack);
		System.out.println(stack.pop());//bbb
		System.out.println(stack);
		System.out.println(stack.pop());//aaa
		System.out.println(stack);//空栈
//		System.out.println(stack.pop()); //空栈,不能再弹了,否则异常:java.util.NoSuchElementException
		
		
		stack.push("fff");
		System.out.println(stack);
	}

} 

3. 模拟队列

package com.qf.demo01;

import java.util.LinkedList;

public class Test4LinkedList {

	public static void main(String[] args) {
		/*
		 * 使用LinkedList模拟队列的存储:特点FIFO
		 * First In First Out
		 * 
		 * 消息队列:
		 */
		
		LinkedList<String> l2 = new LinkedList<>();
		l2.offer("aaa");//向队伍中添加元素,默认在队尾添加,效果同很多方法都能够实现:add(),addLast()....
		l2.offer("bbb");
		l2.offer("ccc");
		System.out.println(l2);
		
		System.out.println(l2.poll());//获取队头元素,并移除,,,aaa
		System.out.println(l2);
		System.out.println(l2.poll());//bbb
		System.out.println(l2);
		
	}

}

4. 对比

 

posted @ 2020-07-25 22:48  1769987233  阅读(119)  评论(0编辑  收藏  举报