Java集合ArrayList的应用

/**
 *
 * @author Administrator
 * 功能:Java集合类ArrayList的使用
 */
package com.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class Test2 {

    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        //演示
//        String a = new String("abc");
//        String b = new String("abc");
//        //==比较的是字符串的地址,equals比较的字符串的内容
//        if(a == b)
//        {
//            //该句不会被输出
//            System.out.println("OK");
//        }
//        if(a.equals(b)) //a.equals(b)返回的是布尔值
//        {
//            //该句会被输出
//            System.out.println("OK!");
//        }

        //创建EmpManage对象
        EmpManage em = new EmpManage();

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //作出一个简易菜单
        while(true)
        {
            System.out.println("请选择你要进行的操作:");
            System.out.println("1:表示添加一个雇员");
            System.out.println("2:查找一个雇员");
            System.out.println("3:修改一个雇员工资");
            System.out.println("4:删除一个雇员");
            System.out.println("5:退出系统");

            String operType = br.readLine();

            if(operType.equals("1"))
            {
                System.out.println("请输入编号");
                String empNo = br.readLine();
                System.out.println("请输入名字");
                String name = br.readLine();
                System.out.println("请输入工资");
                float sal = Float.parseFloat(br.readLine());

                Emp emp = new Emp(empNo, name, sal);
                em.addEmp(emp);
                System.out.println("添加成功!");

            }
            else if(operType.equals("2"))
            {
                System.out.println("请输入编号");
                String empNo = br.readLine();
                em.showInfo(empNo);
            }
            else if(operType.equals("3"))
            {
                System.out.println("请输入编号");
                String empNo = br.readLine();
                System.out.println("请输入工资");
                float newSal = Float.parseFloat(br.readLine());
                em.updateSal(empNo, newSal);
            }
            else if(operType.equals("4"))
            {
                System.out.println("请输入编号");
                String empNo = br.readLine();
                em.delEmp(empNo);
            }
            else if(operType.equals("5"))
            {
                //退出系统,终止当前正在运行的Java虚拟机
                //参数用作状态码;根据惯例,非 0 的状态码表示异常终止
                //-1时Java虚拟机会做检测工资,0的话是正常退出
                System.exit(0);
                //System.exit(-1);
            }
        }

    }
}

// 雇员管理类
class EmpManage {
    private ArrayList al = null;

    // 构造函数最主要的作用就是初始化成员变量
    public EmpManage() {
        al = new ArrayList();
    }

    // 加入员工
    public void addEmp(Emp emp) {
        al.add(emp);
    }

    // 根据员工号显示该员工的相关信息
    public void showInfo(String empNo) {
        // 遍历整个ArrayList
        for (int i = 0; i < al.size(); i++) {
            // 取出Emp对象
            Emp emp = (Emp) al.get(i);

            // 比较编号
            if (emp.getEmpNo().equals(empNo)) {
                System.out.println("找到该员工,他的信息是");
                System.out.println("编号=" + empNo);
                System.out.println("名字=" + emp.getName());
                System.out.println("工资=" + emp.getSal());
            }
        }
    }

    // 修改工资
    public void updateSal(String empNo, float newSal) {
        for (int i = 0; i < al.size(); i++) {
            Emp emp = (Emp) al.get(i);
            if (emp.getEmpNo().equals(empNo)) {
                // 修改薪水
                emp.setSal(newSal);
            }
        }
    }

    // 删除员工
    public void delEmp(String empNo) {
        for (int i = 0; i < al.size(); i++) {
            Emp emp = (Emp) al.get(i);
            if (emp.getEmpNo().equals(empNo)) {
                // 两种删除方式都可以
                al.remove(i);
                // al.remove(emp);
            }
        }
    }
}

// 雇员类
class Emp {

    // 学号
    private String empNo;
    private String name;
    private float sal;

    // 构造函数
    public Emp(String empNo, String name, float sal) {
        super();
        this.empNo = empNo;
        this.name = name;
        this.sal = sal;
    }

    public String getEmpNo() {
        return empNo;
    }

    public void setEmpNo(String empNo) {
        this.empNo = empNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getSal() {
        return sal;
    }

    public void setSal(float sal) {
        this.sal = sal;
    }

}
时间: 2024-08-09 10:43:39

Java集合ArrayList的应用的相关文章

Java集合---ArrayList源码

本文转载自博客园牛奶.不加糖 原文地址:http://www.cnblogs.com/ITtangtang/p/3948555.html 本文仅供本人学习参考使用,如有侵权立即删除. 一. ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安

Java集合---ArrayList的实现原理

一. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小.   每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小.它总是至少等于列表的大小.随着向ArrayList中不断添加元素,其容量也自动增长.自动增长会带来数据向新数组的重新拷贝,因此,如果可预知数据量的多少,可在构造ArrayList时指定其容

java集合-ArrayList

一直要总结java集合中的知识,不知道应该如何下笔.觉得集合太多东西了,写细了太难了,写粗了又感觉写不好.不管如何觉得还是要坚持的写一写基础这一类的东西,为了提高自己的编程基础.本来觉的自己对这些已经很熟悉,最近见过一些大神后发现差距太大了,瞬间懵了,只能在加强学习了. 一.ArrayList是什么? ArrayList是实现List接口的动态数组,所谓动态是指它的大小是可变的.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部

java集合(ArrayList练习)

import java.util.ArrayList; import java.util.Iterator; /* 1.存入自定义对象,并且去除重复元素. * 2.List集合判断元素是否相同,依据的是元素的equals方法. * 心得:Object 里的equals方法判断的是对象的地址值是否相同. *   String 里的equals方法判断对象里内容是否相同. *    在自定义类里面要复写Object中的equals方法,让其比较对象里的内容. 在java里能封装的变量.对象和方法尽量

【源码阅读】Java集合 - ArrayList深度源码解读

Java 源码阅读的第一步是Collection框架源码,这也是面试基础中的基础: 针对Collection的源码阅读写一个系列的文章,从ArrayList开始第一篇. [email protected] JDK版本 JDK 1.8.0_110 概述总结 ArrayList底层是通过数组实现的:其中capacity表示底层数组的长度,而ArrayList长度由size表示: ArrayList允许存放null元素,也可以查找null所在的index, 比如indexOf(), lastIndex

java集合ArrayList

数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变. 为了保存这些数目不确定的元素,JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合. ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类).在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组.

java集合-- arraylist小员工项目

import java.io.*; import java.util.ArrayList; public class Emexe { public static void main(String[] args) throws IOException { EmpManage em=new EmpManage(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); while(true){ System.o

Java 集合--ArrayList

ArrayList构造函数 // 默认构造函数 ArrayList() // capacity是ArrayList的默认容量大小.当由于增加数据导致容量不足时,容量会添加上一次容量大小的一半. ArrayList(int capacity) // 创建一个包含collection的ArrayList ArrayList(Collection<? extends E> collection) ArrayList的API // Collection中定义的API boolean add(E obj

java集合框架--ArrayList类、Vector和LinkedList类

1.ArrayList类概述 底层数据结构是数组,查询块,增删慢. 线程不安全,效率高. 2.ArrayList案例 2.1存储字符串并遍历 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class ArrayListDemo { public static void main(String[] args) { //创建ArrayL