1. package com.test;
  2. import java.util.*;
  3.  
  4. public class Demo7_3 {
  5.  
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8.  
  9. Emp emp = new Emp("sa001", "xiaoming", 12.3f);
  10. Stack stack = new Stack();
  11. stack.add(emp);
  12. for (int i = 0; i < stack.size(); i++) {
  13. Emp temp = (Emp)stack.get(i);
  14. System.out.println(temp.getName());
  15. }
  16. }
  17. }
  18.  
  19. //雇员管理类
  20. class EmpManage {
  21. private ArrayList al = null;
  22.  
  23. // 构造函数最主要的作用就是初始化成员变量
  24. public EmpManage() {
  25. al = new ArrayList();
  26. }
  27.  
  28. // 加入员工
  29. public void addEmp(Emp emp) {
  30. al.add(emp);
  31. }
  32.  
  33. // 根据员工号显示该员工的相关信息
  34. public void showInfo(String empNo) {
  35. // 遍历整个ArrayList
  36. for (int i = 0; i < al.size(); i++) {
  37. // 取出Emp对象
  38. Emp emp = (Emp) al.get(i);
  39.  
  40. // 比较编号
  41. if (emp.getEmpNo().equals(empNo)) {
  42. System.out.println("找到该员工,他的信息是");
  43. System.out.println("编号=" + empNo);
  44. System.out.println("名字=" + emp.getName());
  45. System.out.println("工资=" + emp.getSal());
  46. }
  47. }
  48. }
  49.  
  50. // 修改工资
  51. public void updateSal(String empNo, float newSal) {
  52. for (int i = 0; i < al.size(); i++) {
  53. Emp emp = (Emp) al.get(i);
  54. if (emp.getEmpNo().equals(empNo)) {
  55. // 修改薪水
  56. emp.setSal(newSal);
  57. }
  58. }
  59. }
  60.  
  61. // 删除员工
  62. public void delEmp(String empNo) {
  63. for (int i = 0; i < al.size(); i++) {
  64. Emp emp = (Emp) al.get(i);
  65. if (emp.getEmpNo().equals(empNo)) {
  66. // 两种删除方式都可以
  67. al.remove(i);
  68. // al.remove(emp);
  69. }
  70. }
  71. }
  72. }
  73.  
  74. //雇员类
  75. class Emp {
  76.  
  77. // 学号
  78. private String empNo;
  79. private String name;
  80. private float sal;
  81.  
  82. // 构造函数
  83. public Emp(String empNo, String name, float sal) {
  84. super();
  85. this.empNo = empNo;
  86. this.name = name;
  87. this.sal = sal;
  88. }
  89.  
  90. public String getEmpNo() {
  91. return empNo;
  92. }
  93.  
  94. public void setEmpNo(String empNo) {
  95. this.empNo = empNo;
  96. }
  97.  
  98. public String getName() {
  99. return name;
  100. }
  101.  
  102. public void setName(String name) {
  103. this.name = name;
  104. }
  105.  
  106. public float getSal() {
  107. return sal;
  108. }
  109.  
  110. public void setSal(float sal) {
  111. this.sal = sal;
  112. }
  113.  
  114. }

Java集合类之栈Stack的更多相关文章

  1. java中的栈Stack

    Stack:栈是一种只能在一端进行插入或删除操作的线性表.(先进后出表) java中的Stack继承Vector 实例化 Stack stack=new Stack(); 基本使用 判断是否为空 st ...

  2. Java再学习——栈(stack)和堆(heap)

    一.内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们 ...

  3. Java栈(Stack)和堆(Heap)

    In the following code public void Method1() { int i = 4; int y = 2; class1 cls1 = new class1(); } He ...

  4. 关于Java堆、栈和常量池的详解

    在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register).      这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部.但是寄存器的数量极其有限,所以寄存器由编译 ...

  5. java集合类(三)About Iterator & Vector(Stack)

    接上篇:java集合类学习(二) Talk about “Iterator”: 任何容器类,在插入元素后,还需要取回元素,因为这是容器的最基本工作.对于一般的容器,插入有add()相关方法(List, ...

  6. Java 堆内存与栈内存异同(Java Heap Memory vs Stack Memory Difference)

    --reference Java Heap Memory vs Stack Memory Difference 在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有 ...

  7. (转)Java里的堆(heap)栈(stack)和方法区(method)(精华帖,多读读)

    [color=red][/color]<一> 基础数据类型直接在栈空间分配, 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收.   引用数据类型,需要用new来创建,既在栈 ...

  8. 【Java数据结构学习笔记之二】Java数据结构与算法之栈(Stack)实现

      本篇是java数据结构与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型   栈是 ...

  9. Java中堆(heap)和栈(stack)的区别

    简单的说: Java把内存划分成两种:一种是栈内存,一种是堆内存. 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分 ...

随机推荐

  1. asp:弹出警告框,并重定向的自定义过程

    因为制作的需要写了这样一个简单的函数,重定向可以是指定的页.也可以是前一页! 有两个参数:messtr,警告框的信息;urlstr:转向的网页,为""时,返回到前一页! 程序代码 ...

  2. ASP.NET5/MVC6 下生成Helppage

    https://github.com/domaindrivendev/Ahoy 打开nuget包管理器,搜索Swashbuckle 打开Startup.cs文件在ConfigureServices方法 ...

  3. ping 命令详解

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说"ping一下某机器,看是不是开着".不能打开网页时会说"你先ping网关地址 ...

  4. Sql 基于列的Case表达式

    Case表达式可以用在 Select,update ,delete ,set,in,where ,order by,having子句之后, 只是case表达式不能控制sql程序的流程,只能作为基于列的 ...

  5. powerdesigner 使用的几点问题

    一.powerdesigner 没有DataBase?: powerdesigner 只有在选择物理模型PDM的时候才会出现数据库菜单. 二.PowerDesigner版本控制功能? 1.首先介绍一下 ...

  6. iOS项目里面如何清理缓存

    在正式讲解以前,请先看一下以下图片,在以下这款APP种设有清理缓存,开始我以为很复杂,在弄明白之后,其实就是几句代码就解决了.      在实际项目开发中,我们很多的文件都会缓存在沙盒里面,比如:照片 ...

  7. 如何一行jquery代码写出tab标签页(链式操作)

    啦啦!今天又学了一招,js写几十行的tab标签页jquery写一行就行啦,用到了链式操作!以下是代码: <!DOCTYPE html> <html lang="en&quo ...

  8. nginx 默认会把header里的参数去掉下划线

    做token验证的时候遇到问题:在本地可以获取前端header传的参数,但是部署到服务器获取的就是null(服务器地址用nginx做了代理) 原因: nginx代理默认会把header的参数的 &qu ...

  9. 栈(链式存储) C++模板实现

    #include <iostream> using namespace std; //栈结点类 template <typename T> class stackNode{ p ...

  10. RX学习笔记:FreeCodeCamp的JavaScript基本算法挑战

    FreeCodeCamp的JavaScript基本算法挑战 https://www.freecodecamp.com 2016-07-03 JavaScript还不是非常熟悉,用已经会的知识来解这些题 ...