javaSE___集合体系05___LIst集合下三个子类之____LinkedList集合

一、LinkedList的特有功能:

1、public void addFirst(E e)及addLast(E e) 一个是在头加,一个是在尾加,测试如下:
public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.addFirst("a");
        list.addFirst("b");
        list.addFirst("c");
        list.addFirst("d");
        list.addLast("e");
        System.out.println(list);	//[d,c,b,a,e]
    }
2、public E getFirst()及getLast() 获取第一个元素,获取最后一个元素,测试如下:
public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.addFirst("a");
        list.addFirst("b");
        list.addFirst("c");
        list.addFirst("d");
        list.addLast("e");
        System.out.println(list.getFirst());        //d
        System.out.println(list.getLast());         //e
    }
3、public E removeFirst()及public E removeLast() 删除第一个元素,删除最后一个元素,测试如下:
public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.addFirst("a");
        list.addFirst("b");
        list.addFirst("c");
        list.addFirst("d");
        list.addLast("e");
        System.out.println(list.removeFirst());     //d
        System.out.println(list.removeLast());      //e
        System.out.println(list);                   //[c,b,a]
    }
4、public E get(int index); 获取指定索引的元素,测试如下:
public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.addFirst("a");
        list.addFirst("b");
        list.addFirst("c");
        list.addFirst("d");
        list.addLast("e");
        System.out.println(list.get(1));    //c
    }

二、用LinkedList模拟栈数据结构的集合并测试:

1、简单例子一,用LinkedList模拟栈结构:进来的是a,b,c,d,出去的是d,c,b,a,如下:
/*
模拟进栈方法
*/
public static void main(String[] args) {
        LinkedList list = new LinkedList();					//创建集合对象
        list.addLast("a");
        list.addLast("b");
        list.addLast("c");
        list.addLast("d");

		System.out.println(list.removeLast());          //d
		System.out.println(list.removeLast());          //c
		System.out.println(list.removeLast());          //b
		System.out.println(list.removeLast());          //a
    }
2、例子一改进,如果我们有很多的元素,那是不是都要写很多ist.removeLast()啊?我们改进用循环:
/*
模拟进栈方法
*/
public static void main(String[] args) {
        LinkedList list = new LinkedList();					//创建集合对象
        list.addLast("a");
        list.addLast("b");
        list.addLast("c");
        list.addLast("d");

        while(!list.isEmpty()) {        //是否为空
            System.out.println(list.removeLast());      //输出d,c,b,a
        }
    }
3、我们发现,我们前面的两个模拟是有瑕疵的,看方法名就不像先进后出,我们做一个终极的改进模拟栈结构:

创建一个Stack实体类,封装LinkedList

public class Stack {
	private LinkedList list = new LinkedList();
	
	/*
	 * 模拟进栈方法
	 */
	public void in(Object obj) {
		list.addLast(obj);
	}
	
	/*
	 * 模拟出栈
	 */
	public Object out() {
		return list.removeLast();
	}
	
	/*
	 * 模拟栈结构是否为空
	 */
	
	public boolean isEmpty() {
		return list.isEmpty();
	}
}

测试一下:

public static void main(String[] args) {
		Stack s = new Stack();
		s.in("a");								//进栈
		s.in("b");
		s.in("c");
		s.in("d");
		
		while(!s.isEmpty()) {					//判断栈结构是否为空
			System.out.println(s.out());		//弹栈,输出d,c,b,a
		}
	}
————————
创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值