使用linkedlist封装简单的先进先出队列

摘要:
创建一个类Queue来表示队列(先进先出),添加add(Objectobj)和get()方法,并添加main()方法来验证这个想法:使用LinkedList来实现队列,在添加到LinkedList时使用addFirst()方法;在从LinkedLsit中删除时使用removeLast()方法1packagecom.lch.book3chapter1.exercise4;23导入java.u

 创建一个类Queue代表队列(先进先出),添加add(Object obj) 及get()方法, 并添加main()方法进行验证 思路: 使用LinkedList实现队列,在向LinkedList中添加时,使用addFirst()方法, 在从LinkedLsit中取出时,使用removeLast()方法

 1 package com.lch.book3chapter1.exercise4;
 2 
 3 import java.util.LinkedList;
 4 
 5 
 6 public class QueueTest {
 7 
 8 
 9     public static void main(String[] args) {
10         Student stu1 = new Student("李磊", 90);
11         Student stu2 = new Student("韩梅", 96);
12         Student stu3 = new Student("李中", 79);
13 
14         Queue<Student> q = new Queue<Student>();
15         q.add(stu1);
16         q.add(stu2);
17         q.add(stu3);
18         for (int i = 0; i < q.size(); i++) {
19             Student s = q.get();
20             System.out.println(s.getName() + "-" + s.getScore());
21         }
22     }
23 
24 }
25 
26 class Queue<T> {
27     private LinkedList<T> list = null;
28     int count = 0;
29 
30     public Queue() {
31         list = new LinkedList<T>();
32     }
33 
34     public T get() {
35         T obj = null;
36         if (!list.isEmpty()) {
37             // 第一个添加的元素在队列的尾部
38             obj = list.removeLast(); // 删除并返回列表的最后一个元素(第一个被添加的元素)
39         }
40         return obj;
41         // return list.getLast(); //没有删除操作,获取到的永远是最后一个
42     }
43 
44     public void add(T obj) {
45         list.addFirst(obj);
46         this.count++;
47     }
48 
49     public int size() {
50         return count;
51     }
52 }
53 
54 class Student {
55     private String name;
56     private int score;
57     
58     public Student(String name, int score) {
59         super();
60         this.name = name;
61         this.score = score;
62     }
63 
64     public String getName() {
65         return name;
66     }
67 
68     public void setName(String name) {
69         this.name = name;
70     }
71 
72     public int getScore() {
73         return score;
74     }
75 
76     public void setScore(int score) {
77         this.score = score;
78     }
79 
80     @Override
81     public String toString() {
82         return "Student [name=" + name + ", score=" + score + "]";
83     }
84 
85     
86 }

打印结果

使用linkedlist封装简单的先进先出队列第1张

免责声明:文章转载自《使用linkedlist封装简单的先进先出队列》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring事务管理接口:PlatformTransactionManager、TransactionDefinition和TransactionStatusJava Api Consumer 连接启用Kerberos认证的Kafka下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

pl/sql中的取模运算

pl/sql语言的取模(即求余)运算不使用大部分语言所支持的a%b而是使用函数mod(a,b)例子如下:写一个匿名块判断某年是否是闰年,能被4但是不能被100整除,或者能被400整除1declare2judgevarchar2(200);3year_inputnumber;4begin5year_input:='&输入年份';6if(mod(year...

JQuery 导入导出 Excel

正在做一个小项目,从数据库中查询数据放在HTMLTable中.现在想要从这个table中导出数据来.另外用户需要选择导出的列.使用jQuery的导出插件可以完成这个需求.jQueryPlugintoExportHTMLTables例子:导入插件:[javascript]viewplaincopy˂/scr...

用arduino做一个智能垃圾桶

这些天我几乎很忙。我有一些时间继续打扰我的arduino。上一次我从TB购买arduino套件时,有一个人体热能感应模块,用于感应人体接近信号。今天我们用这个做一个简单的智能垃圾桶。要实现的功能是:当有人靠近时,垃圾可以自动打开盖子,当人离开时,盖子可以自动关闭。1、 所需材料和工具:1 Arduino SCM我使用Arduino Nano 2人体热能传感模...

vue+jspdf+html2canvas导出PDF文件

没有废话。首先,查看最终打印结果。我说最后打印的pdf文件看起来像这样。pdf文件的分页是通过设置jspdf实现的,但我暂时无法对文件内容进行分页。因为我们首先将需要打印的元素转换为画布,然后将画布转换为图像,然后将图像转换为pdf文件。...

Activiti-个人任务

1.分配任务所有者1.1固定分配在业务流程建模期间指定固定任务所有者;在properties视图中,填写Assignee项作为任务所有者;注:通过固定分配方法,任务是逐步执行的,任务负责人将根据bpmn的配置分配给每个任务;1.2表达式分配1.2.1 UEL表达式Activiti使用UEL表达式,UEL是javaEE6...

如何给LINUX红帽子版本配置IP(转)

如果需要绑定另一个IP地址,只需在文件名中添加一个,并在文件中的DEVICE中添加eth0:x。LINUX可以支持多达255个IP别名,多个网卡绑定到一个IP地址,并且可以使用多个网卡创建具有相同IP地址的虚拟网卡。事实上,这种技术已经存在于Sun和Cisco中,它们分别被称为中继和以太网信道技术。在Linux中,这种技术被称为绑定。...