JavaSE笔记10.3-集合-LinkedList

一. LinkedList特有方法

//1. 添加方法
boolean addFirst(Object o);//在列表开头插入指定元素
boolean allLast(Object o);//在列表结尾插入指定元素

//2. 获取方法
Object getFirst();//返回列表中的第一个元素,但不删除元素
Object getLast();//返回列表中的最后一个元素,但不删除元素
//如果集合中没有元素,会出现NoSuchElementException异常

//3. 删除元素
Object removeFirst();//从列表中删除并返回第一个元素
Object removeLast();//从列表中删除并返回最后一个元素
//如果集合中没有元素,会出现NoSuchElementException异常

在JDK1.6出现了替代方法

//1. 添加方法
boolean offerFirst(Object o);//在列表开头插入指定元素
boolean offerLast(Object o);//在列表结尾插入指定元素

//2. 获取方法
Object peekFirst();//返回列表中的第一个元素,但不删除元素
Object peekLast();//返回列表中的最后一个元素,但不删除元素
//如果集合中没有元素,则返回null

//3. 删除元素
Object pollFirst();//从列表中删除并返回第一个元素
Object pollLast();//从列表中删除并返回最后一个元素
//如果集合中没有元素,则返回null

二. LinkedList练习

使用LinkedList模拟一个堆栈或者队列数据结构
堆栈:先进后出
队列:先进先出

1. 模拟队列
import java.util.*;
class queue{
    private LinkedList link;
    queue(){
        link=new LinkedList();
    }
    public void myAdd(Object obj){
        link.addFirst(obj);
    }
    public Object myGet(){
        return link.removeLast();//先进先出
    }
    public boolean isNull(){
        return link.isEmpty();
    }
}
class LinkedListTest{
    public static void main(String[] args){
        queue q=new queue();
        q.myAdd("java01");
        q.myAdd("java02");
        q.myAdd("java03");
        q.myAdd("java04");
        while(!q.isNull()){
            System.out.println(q.myGet());
        }
    }
}

运行结果是:
在这里插入图片描述

2. 模拟堆栈
import java.util.*;
class stack{
    private LinkedList link;
    stack(){
        link=new LinkedList();
    }
    public void myAdd(Object obj){
        link.addFirst(obj);
    }
    public Object myGet(){
        return link.removeFirst();//改动此处,变成先进后出
    }
    public boolean isNull(){
        return link.isEmpty();
    }
}
class LinkedListTest{
    public static void main(String[] args){
        stack s=new stack();
        s.myAdd("java01");
        s.myAdd("java02");
        s.myAdd("java03");
        s.myAdd("java04");
        while(!s.isNull()){
            System.out.println(s.myGet());
        }
    }
}

运行结果是:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值