为了账号安全,请及时绑定邮箱和手机立即绑定

Java集合之LinkedList常见实例操作,实例说明

标签:
Java

一.LinkedList常见操作

package List相关;/** * LinkedList 链接列表 * LinkedList:底层使用的链表数据结构。特点:增删速度快,查询速度稍慢; */import java.util.Iterator;import java.util.LinkedList;class linkedlist_test {    public static void main(String[] args){        LinkedList linkedlist = new LinkedList();        LinkedList linkedlist1 = new LinkedList();        linkedlist1.add("what");//        linkedlist1.add("zhangj");        /**增*/        System.out.println("------------新增操作------------");        //在尾部进行添加元素        linkedlist.add("what");        linkedlist.add("?");        //在指定位置添加元素        linkedlist.add(1,"now");        System.out.println(linkedlist);        //在列表首位添加元素        linkedlist.addFirst("one");        //在列表尾部添加元素        linkedlist.addLast("last");        //在指定添加元素        linkedlist.addAll(1,linkedlist1);        System.out.println(linkedlist);        /**查*/        System.out.println("------------查询操作------------");        System.out.println("linkedlist链表列表为:"+linkedlist);        //获取首位元素        Object obj1 = linkedlist.getFirst();        //获取指定位置的元素        Object obj2 = linkedlist.get(2);        //获取尾部的元素        Object obj3 = linkedlist.getLast();        //查询链表列表的长度(元素个数)        int a1= linkedlist.size();        System.out.println("首位元素为:"+obj1+";第三个元素为:"+obj2+";尾部元素为:"+obj3+";内部元素个数为:"+a1);        /**修改*/        System.out.println("------------修改操作------------");        System.out.println("修改之前的链表列表为:"+linkedlist);        linkedlist.set(1,"what you");        System.out.println("修改之后的链表列表为:"+linkedlist);        //遍历列表        //通过while方式来遍历        Iterator it1 = linkedlist.listIterator();//        while (it1.hasNext()){//            System.out.println("while:"+it1.next());//        }        //通过for循环方式来遍历        for(;it1.hasNext();){            System.out.println("for:"+it1.next());        }        /**删         * 在使用remove进行删除时,在进行删除操作的同时也会把此次删除的对象取出来         * remove(intdex int)在进行删除操作时,若index超出角标边界,则会抛异常IndexOutOfBoundsException         * 但是在使用poll类型进行操作时,若index超出角标边界,则会返回null         *         */        System.out.println("------------删除操作------------");        System.out.println("删除开始的链表列表为:"+linkedlist);        //removeFirstOccurrence,在linkedlist中指定元素第一个出现        linkedlist.add(1,"now");        System.out.println("-----begin-------------"+"linkedlist="+linkedlist);//        linkedlist.removeFirstOccurrence("now");        //removeLastOccurrence,在linkedlist中指定元素第一个出现        linkedlist.removeLastOccurrence("now");        System.out.println("-----end---------------"+"linkedlist="+linkedlist);        //删除指定元素对象,有指定元素则删除,无指定元素则不操作,返回值为Boolean类型        Object obj5 = linkedlist.remove("?");        System.out.println("删除链表列表的元素为:"+obj5);        //删除指定索引位置的对象        linkedlist.remove(0);        //按索引删除首位元素,等价于linkedlist.remove(0);        linkedlist.removeFirst();        //按索引删除尾部元素        Object O = linkedlist.removeLast();        System.out.println(O);        //删除所有的元素(清空列表)        linkedlist.clear();        //remove和poll删除方法的比较//        linkedlist.remove(9);        Object obj9=linkedlist.poll();        System.out.println("obj9="+obj9);        System.out.println("删除结束的链表列表为:"+linkedlist);//其他方法简介,不作说明//        E peek()//        检索但不删除此列表的头(第一个元素)。//        E peekFirst()//        检索但不删除此列表的第一个元素,如果此列表为空,则返回 null 。//        E peekLast()//        检索但不删除此列表的最后一个元素,如果此列表为空,则返回 null 。//        E poll()//        检索并删除此列表的头(第一个元素)。//        E pollFirst()//        检索并删除此列表的第一个元素,如果此列表为空,则返回 null 。//        E pollLast()//        检索并删除此列表的最后一个元素,如果此列表为空,则返回 null 。//        E pop()//        从此列表表示的堆栈中弹出一个元素。    }}

二.一个实际中操作
概念简单说明:
栈堆:元素先进后出,类似水杯装水;
队列:元素先进先出,类似水管输水;
需求:实现一个类型栈堆或队列的功能容器
1.封装一个类似类型栈堆或队列的功能容器

import java.util.LinkedList;public class linkedlist_test1 {    /*实现类似栈堆或队列功能的容器*/    private LinkedList linkedlist;    //构造函数,一开始就生成一个链表队列linkedlist    linkedlist_test1(){        linkedlist = new LinkedList();    }    //定义向链表队列添加元素的功能    public void addElement(Object obj){        linkedlist.add(obj);    }    //定义一个类似栈堆功能(先进后出)    public Object ZhanDui(){        return linkedlist.removeFirst();    }    //定义一个类似队列功能(先进先出)    public Object DuiLie(){        return linkedlist.removeLast();    }    //定义一个判断linkedlsit是否为空的功能    public boolean isNull(){        return  linkedlist.isEmpty();    }

2.调用封装好的类

public class Tset{public static void main(String[] args){        linkedlist_test1 test = new linkedlist_test1();        String array[] = {"what","you","want"};        test.addElement(1);        test.addElement("you");        test.addElement("and");        test.addElement(array);        //栈堆功能//        while (!test.isNull()){//            System.out.println(test.DuiLie());//        }        //队列功能        for(;!test.isNull();){            System.out.println(test.ZhanDui());        }    }}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
数据库工程师
手记
粉丝
52
获赞与收藏
361

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消