Java集合类之Hashtable

package com.test;
import java.util.*;

public class Demo7_3 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Emp emp1 = new Emp("s001", "aaa", 12.3f);
        Emp emp2 = new Emp("s002", "bbb", 5.3f);
        Emp emp3 = new Emp("s003", "李逵", 52f);

        //创建一个HashTable对象
        //HashMap和HashTable的用法完全一致
        /*
         * Hashtable是线程同步的会去锁当1号进程访问而是,2号要等待,安全但会导致速度变慢
         * HashMap是异步的不安全,但速度较快
         *一个线程的应选用HashMap,因为不会存在同步,一般只有做服务器时,才要求同步
         */
        Hashtable ht = new Hashtable();
        ht.put("s001", emp1);
        System.out.println(ht.get("s001"));
//        //放空值Hashtable会出现异常
//        ht.put(null, null);
//        System.out.println("测试:"+ht.get(null));
        HashMap hm = new HashMap();
        //HashMap可以放空值
        hm.put(null, null);
        System.out.println("测试"+hm.get(null));

    }
}

//雇员管理类
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-10-07 04:50:29

Java集合类之Hashtable的相关文章

Java集合类: Set、List、Map、Queue使用

目录 1. Java集合类基本概念 2. Java集合类架构层次关系 3. Java集合类的应用场景代码 1. Java集合类基本概念 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量.一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了. 集合类主要负责保存.盛装其他数据,因此集合类也被称为容

摘抄转载前辈们的Java集合类总结

JAVA 集合类介绍和使用    类关系示意图  Iterable(接口)      │      └--Collection (接口)          ├-List(接口)          │ ├-LinkedList  不同步  (构造同步:List list = Collections.synchronizedList(new LinkedList(...));)          │ ├-ArrayList   不同步           │ └-Vector      同步    

针对Java集合类的小总结

Java集合类包位于java.util下,有很多常用的数据结构:数组.链表.队列.栈.哈希表等等.了解不同的集合类的特性在开发过程中是比较重要的,感谢@兰亭风雨的专栏分析,这里我也根据自己的理解做轻度的总结,不再进行分析,因为上面的博客分析已经相当优秀. List接口实现,一般常用的为ArrayList和LinkedList,还有不太常用的Vector,Stack.比如JDK文档声明 Deque 接口及其实现提供了 LIFO 堆栈操作的更完整和更一致的 set,应该优先使用此 set,而非Sta

Java集合类相关面试题

1.Collection和Collections的区别 java.util.Collection 是一个集合接口,Collection接口在Java类库中有很多具体的实现,例如List.Set java.util.Collections 是针对集合类的一个帮助类,它提供了一系列的静态方法实现对各种集合的搜索.排序.线程安全化等操作. 2.ArrayList与Vector的区别 这两个类都实现了List接口(List接口继承自Collection接口).它们都是有序集合,它们内部的元素都是可以重复

【转载】Java集合类Array、List、Map区别和联系

Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays Java所有"存储及随机访问一连串对象"的做法,array是最有效率的一种. 1.效率高,但容量固定且无法动态改变.array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量. 2.Java中有一个Arrays类,专门用来操作array .array

Java集合类: Set、List、Map、Queue使用场景梳理

Java集合类: Set.List.Map.Queue使用场景梳理 本文主要关注Java编程中涉及到的各种集合类,以及它们的使用场景 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E6%8E%92%E5%BA%8F%E5%8F%8Ajava%E9%9B%86%E5%90%88%E7%B1%BB%E8%AF%A6%E8%A7%A3%28collection%E3%80%81list%E3%80%81map%E3%

一张图让你看清Java集合类(Java集合类的总结)

如今关于Java集合类的文章非常多,可是我近期看到一个非常有意思图片,基本上把Java集合的整体框架都给展现出来了.非常直观. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWFtenAyMDA4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" align="middle" > 假设发现图片看不清楚.点此处看大图 在这里,

JAVA集合类(大公司面试喜欢问的)

 分类: 核心JAVA(11)  版权声明:本文为博主原创文章,未经博主允许不得转载. 看了一些所谓大公司的Java面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧. java.util包中就包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式. 接口:Collection 所有集合类的根类型,主要的一个接口方法:boolean add(Ojbect c)虽返回的是boolean,但不是表示添加成功与

Java集合类简单总结(重学)

java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例:姓名-电话,通过姓名得到电话),通过Map创建的对象key都 不可以重复. 它的两个常用子类:HashMap类和HashTable类. HashMap类:无序存放的,key不允许重复 HashTable类:无序存放,key不允许重复 key值可通过Map的方法keyset获取全部的key值,返回是个