集合第七发练习之利用ArrayList做栈、队列
来源:互联网 发布:ubuntu怎么下载输入法 编辑:程序博客网 时间:2024/05/22 06:21
栈:后进先出。
队列:先进先出。
利用这个核心思想,结合集合的add和remove方法做的栈和队列如下代码所示:
主类(t1()和t2()分别演栈和队列):
package cn.hncu.mySet2;import java.util.Iterator;import cn.hncu.set.Person;public class TestDemo {public static void main(String[] args) {t1();//t2();}private static void t1() {Person p1=new Person("01", "张三", 20);Person p2=new Person("02", "李四", 21);Person p3=new Person("03", "王五", 22);Person p4=new Person("04", "mis", 17);MyStack stack=new MyStack();stack.in(p1);stack.in(p2);stack.in(p3);System.out.println(stack.out());System.out.println(stack.out());System.out.println(stack.out());System.out.println(stack.out());System.out.println(stack.out());}private static void t2() {Person p1=new Person("01", "张三", 20);Person p2=new Person("02", "李四", 21);Person p3=new Person("03", "王五", 22);Person p4=new Person("04", "mis", 17);MyQueue queue=new MyQueue();queue.in(p1);queue.in(p2);queue.in(p3);queue.in(p4);System.out.println(queue.out());System.out.println(queue.out());System.out.println(queue.out());System.out.println(queue.out());System.out.println(queue.out());}}栈类:
package cn.hncu.mySet2;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedList;import java.util.List;import java.util.Set;import java.util.Stack;public class MyStack {private LinkedList mystack=new LinkedList();public void in(Object obj){mystack.add(obj);}public Object out(){if(mystack.isEmpty()){return null;}return mystack.removeLast();}public boolean isEmpty(){return mystack.isEmpty()?true:false;}}
队列类:
package cn.hncu.mySet2;import java.util.LinkedList;public class MyQueue {private LinkedList list=new LinkedList();public void in(Object obj){list.add(obj);}public Object out(){if(list.isEmpty()){return null;}return list.remove(0);}public boolean isEmpty(){return list.isEmpty()?true:false;}}person类:
package cn.hncu.mySet2;public class Person {private String Sno;private String name;private int age;public Person(String sno, String name, int age) {super();Sno = sno;this.name = name;this.age = age;}public String getSno() {return Sno;}public void setSno(String sno) {Sno = sno;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [Sno=" + Sno + ", name=" + name + ", age=" + age + "]";}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((Sno == null) ? 0 : Sno.hashCode());result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Person other = (Person) obj;if (Sno == null) {if (other.Sno != null)return false;} else if (!Sno.equals(other.Sno))return false;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}}
0 0
- 集合第七发练习之利用ArrayList做栈、队列
- java集合框架的练习之ArrayList集合的运用
- java集合(ArrayList练习)
- ArrayList 集合练习
- 用集合做队列、栈
- 第七次作业ArrayList集合
- c#常用集合类使用练习(队列Queue、栈Stack、哈希表Hashtable和动态数组ArrayList)(1):
- c#常用集合类使用练习(队列Queue、栈Stack、哈希表Hashtable和动态数组ArrayList)(2):
- c#常用集合类使用练习(队列Queue、栈Stack、哈希表Hashtable和动态数组ArrayList)(3):
- c#常用集合类使用练习(队列Queue、栈Stack、哈希表Hashtable和动态数组ArrayList)(4):
- 集合第八发练习之容器版V2.0
- 集合框架--ArrayList练习实例
- java集合框架的练习之TreeSet集合与ArrayList集合的混合使用
- Java集合之ArrayList
- 集合之ArrayList
- java集合之ArrayList
- Java集合之ArrayList
- java集合之ArrayList
- 【Settings】默认关闭数据流量
- MATLAB编译c++出错的解决办法(Error in compile (line 439) mex(args{:});)
- u-boot分析 五 (u-boot如何向kernel传启动参数)
- 【Android 2d游戏开发(3)】——贪吃蛇(基于surfaceview框架,精讲)
- C++11中的decltype用法注意
- 集合第七发练习之利用ArrayList做栈、队列
- HDU1217——Arbitrage(Floyd)
- 【资源汇集.转】计算机视觉方面的代码
- LPC 176X 驱动GT20L16 字库
- Android 增强版百分比布局库 Eclipse Demo
- 第5周项目游泳池改造
- C#第二次上机
- 解决日常问题之counters.dat
- codeforces 651B Beautiful Paintings