TIJ学习笔记之LinkedList
来源:互联网 发布:点餐系统 开源 java 编辑:程序博客网 时间:2024/05/24 04:22
LinkedList是实现List接口的类之一,它相比于ArrayList更适合删除与插入,而不适合随机访问。是因为的它的实现数据结构是双向链表。
根据数据结构的知识可知,LinkedList确实较适合删除与插入。
下面是一些它的常用方法:
package com.zhiru;import java.util.LinkedList;public class LinkedListTests {public static void prt(String s){System.out.print(s+"\n");}public static void main(String[] args) {// TODO Auto-generated method stub/* * (1) 泛型是没有数组的。编译器不承认 HashMap<K,V>[]这种形式的: Cannot create a generic array of HashMap<k,v> 原因就是数组必须确定他每一个元素的类型。但是泛型在编译阶段有一个类型擦除的问题, 也就是说编译器理解HashMap<Integer,Integer>和HashMap<String,String>都是同一种类型HashMap。 如果泛型数组存在,那么HashMap<Integer,Integer>和HashMap<String,String> 对象都可以加入到同一个HashMap[]数组中,这会造成灾难性的结果。 */LinkedList<String> list=new LinkedList<String>();for(int i=0;i<10;i++){list.add(String.valueOf(i+1));}prt(""+list);prt("getFirst:"+list.getFirst());prt("getLast:"+list.getLast());prt("peek:"+list.peek());prt("remove:"+list.remove());prt("removeFirst:"+list.removeFirst());prt("removeLast:"+list.removeLast());prt("poll:"+list.poll());prt(""+list);list.addFirst("10000000");prt("After add First 10000000:"+list.getFirst());list.offer("xx123xx");prt("after add the tail elements xx123xx:"+list.getLast());list.addLast("WaHAGA");prt("after added the WaHAGA as the last elememts:"+list);prt("removeLast:"+list.removeLast());prt("all list"+list);MyQueue<String> q=new MyQueue<String>();q.enQueue("1");q.enQueue("2");q.enQueue("3");prt(""+q);prt("获取队头元素:"+q.getFront());prt("出队:"+q.deQueue());prt(""+q);}}
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
getFirst:1
getLast:10
peek:1
remove:1
removeFirst:2
removeLast:10
poll:3
[4, 5, 6, 7, 8, 9]
After add First 10000000:10000000
after add the tail elements xx123xx:xx123xx
after added the WaHAGA as the last elememts:[10000000, 4, 5, 6, 7, 8, 9, xx123xx, WaHAGA]
removeLast:WaHAGA
all list[10000000, 4, 5, 6, 7, 8, 9, xx123xx]
用linkedList实现栈
package com.zhiru;import java.util.LinkedList;/* * 用LinkedList实现一个栈 * lifo */public class MyStack<E> {private LinkedList<E> s = new LinkedList<E>();public void push(E e){s.addFirst(e);}//peek方法提供栈顶元素,但不删除它public E peek(){return s.getFirst();}//pop方法删除并返回栈顶元素.public E pop(){return s.removeFirst();}public boolean empty(){return s.isEmpty();}public String toString(){return s.toString();}}
再实现一个队列:
package com.zhiru;import java.util.LinkedList;//用LinkedList实现队列.//fifopublic class MyQueue<E> {private LinkedList<E> s = new LinkedList<E>();public void enQueue(E e){s.offer(e);}public E deQueue(){return s.poll();}public E getFront(){return s.peek();}public boolean isEmpty(){return s.isEmpty();}public int size(){return s.size();}public String toString(){return s.toString();}}
0 0
- TIJ学习笔记之LinkedList
- tij学习笔记-1
- TIJ学习笔记-异常
- tij学习笔记 多态,继承
- tij学习笔记 内部类
- TIJ学习笔记-匿名类
- TIJ学习笔记-内部类
- TIJ学习笔记-嵌套类
- 学习笔记(TIJ)-自己的注释
- TIJ学习笔记-多层嵌套类
- Java学习笔记之LinkedList基本用法
- JAVA学习笔记----集合类之LinkedList
- LinkedList学习笔记
- ArrayList、LinkedList学习笔记
- Java LinkedList学习笔记
- 学习笔记--实现LinkedList
- tij学习笔记 第四章 初始化与清理
- tij学习笔记(通过代码话多态)
- java 生成图片验证码
- 作为程序员创业者,来谈一下“老罗与王自如对战”
- C语言之野指针产生原因、易错模型、解决办法
- 解决ORACLE账号system被锁和修改密码
- CT值计算公式
- TIJ学习笔记之LinkedList
- 动态添加ImageView 设置setPadding不起作用问题
- (转)JavaBean中DAO设计模式介绍
- Linux系统的运行队列深度
- 配置开发支持高并发TCP连接的Linux应用程序全攻略
- 临时表
- 无插件Vim编程技巧 *******************
- Java基础篇
- 小黑小波比.Ubuntu下Smart QQ无法登录问题,输入密码点击确认后自动回到登录界面