Java----HashMap类集合

Java----HashMap类集合

package com.panhui;

import java.util.*;

 

publicclassDemo9_28_1 {

 

    publicstatic void main(String[]args) {

        // TODO Auto-generated method stub

        //创建一个HashMap

        HashMaphm =new HashMap();

        Empemp1=newEmp("001","aaa",3.4f);

        Empemp2=newEmp("002","bbb",4.5f);

       

        //emp放入hm

        hm.put("001",emp1);

        hm.put("002",emp2);

       

        //查找

        if(hm.containsKey("001"))

        {

            System.out.println("该员工存在");

           

            //如何取出value

            Empemp= (Emp)hm.get("002");

            System.out.println("编号:"+emp.getEmpNo());

            System.out.println("名字:"+emp.getName());

            System.out.println("工资:"+emp.getSal());

           

           

        }

        else

        {

            System.out.println("该员工不存在");

        }

       

        //遍历HashMap中所有的keyvaule

        //迭代器

        Iteratorit =hm.keySet().iterator();

        //判断下一个存不存在

        while(it.hasNext())

        {

            //取出key

            Stringkey=it.next().toString();

           

            //通过key取出vaule

            Empemp= (Emp)hm.get(key);

            System.out.println("编号"+emp.getEmpNo());

            System.out.println("姓名"+emp.getName());

            System.out.println("薪水"+emp.getSal());

        }

       

       

    }

 

}

 

 

class Emp

{

   privateStringempNo;

   privateStringname;

   privatefloatsal;

   publicEmp(StringempNo,Stringname,floatsal)

   {

    this.empNo =empNo;

    this.name =name;

    this.sal =sal;

   }

   

   publicString getEmpNo() {

        returnempNo;

    }

    publicvoid setEmpNo(String empNo) {

        this.empNo =empNo;

    }

    public String getName() {

        returnname;

    }

    publicvoid setName(String name) {

        this.name =name;

    }

    publicfloat getSal() {

        returnsal;

    }

    publicvoid setSal(floatsal) {

        this.sal =sal;

    }

   

}

结果:

 

总结:

1.     HashMap类的插入,如果两个类的key值是相同的,那么后者的内容会覆盖前者。

2.     HashMap类的打印是没有顺序可言的,而且一个key对应一个value

3.     创建一个HashMap类:HashMap hm = new HashMap();

        在类中添加内容:    Emp emp1 = new Emp("001","aaa",3.4f);

                        Emp emp2 = new Emp("002","bbb",4.5f);

        在HashMap中查找某一个类:根据key的值来寻找

                              if(hm.containsKey("001"))

                                {}

        遍历整个HashMap类,用到迭代器

                    //遍历HashMap中所有的keyvaule

                   //迭代器

                   Iterator it = hm.keySet().iterator();

                  //判断下一个存不存在?

                  while(it.hasNext())

                 {

                    //取出key

                    String key = it.next().toString();

           

                  //通过key取出vaule

                   Emp emp = (Emp)hm.get(key);

                    /*

                    打印类的内容

                   */

}

 

       几个集合类的区别

 

数据增长:

缺省的情况

ArrayList是原来的50%

Vector是原来的100%

 

同步:就是多个程序同时操作这个Hashtable或者Vector

 

 

如果只有一个线程,用HashMap的效率更高。

 

 

大总结:

1, 如果要求线程安全,使用Vector、Hashtable

2, 如果不要求线程安全,应使用ArrayList,  LinkedList, HashMap

3, 如果要求键值对,则用HashMap,Hashtable

4, 如果数据量很大,又要线程安全考虑Vector

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值