一.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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦