集合之LinkedList

LinkedList:
一、集合的体系:
—| Collection 单列集合的根接口
——| List 如果实现了List接口的集合类,具备的特点: 有序,可重复。
———| ArrayList:底层是维护了一个Object数组实现的, 特点: 查询速度快,增删慢。
———| LinkedList:底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。

———| Vector(了解即可)
——| Set 如果实现了Set接口的集合类, 具备的特点: 无序,不可重复。

二、Linkedlist特有的方法:
1、基础方法
addFirst(E e) 、addLast(E e)
getFirst() 、getLast()
removeFirst()、removeLast()
2、返回逆序的迭代器对象
descendingIterator() 返回逆序的迭代器对象

3、数据结构方法

1)栈:主要是用于实现堆栈数据结构的存储方式。
特点:先进后出
push()、pop()
2)队列(双端队列):为了让可以使用LinkedList模拟队列数据结构的存储方式。
特点:先进先出
offer()、poll()

三、机试题目: 使用LinkedList实现堆栈数据结构的存储方式与队列的数据结构存储方式。
1、模拟堆栈:

import java.util.LinkedList;

// 使用LinkedList模拟堆栈的数据结构存储方式
class StackList{
    private LinkedList list;
    public StackList(){
        list = new LinkedList();
    }
    //进栈
    public void add(Object o){
        list.push(o);
    }
    //弹栈 : 把元素删除并返回。
    public Object pop(){
        return list.pop();
    }
    //获取元素个数
    public int size(){
        return list.size();
    }
}

public class Demo5 {
    public static void main(String[] args){
        StackList list = new StackList();
        list.add("Tom");
        list.add("Endeavor");
        list.add("Derek");
        /*
         * 输出结果为:Derek,Endeavor,
         * 缺少一个的原因是,每次弹出,list.size()的值都会减一
         */
        /*for(int i=0;i<list.size();i++){
            System.out.print(list.pop()+",");
        }*/
        /*
         * 正确输出方式
         * 输出结果为:Derek,Endeavor,Tom,
         */
        int size = list.size();
        for(int i=0;i<size;i++){
            System.out.print(list.pop()+",");
        }
    }
}

2、模拟队列:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值