zoukankan      html  css  js  c++  java
  • java集合类的学习(二)

    1. ArrayList,LinkedList,Vector都是List的实现类,前两都没有实现同步机制,Vector实现了同步机制。他们代码类似。
    2. ArrayList代表大小可变的数组,允许对元素进行快速随机访问,但向List中间进行添加移除元素操作时效率很差,LinkedList采用了链表数据结构,对顺序访问进行了优化,提高了向List中间位置进行操作的效率。
    3. Vector的作用跟ArrayList差不多,只是区别于一个实现了同步机制,一个没有。如果保存大量的数据用他。
    4. HashMap是Map的一个实现类,采用了哈希算法来存取Key对象,具有很好的存取性能。并且允许将null作为Map的Key或Value,HashMap也是没有实现同步机制的。
    5. hashMap和hashTable代码类似如下:
    6.  1 package 集合类练习;
       2 
       3 import java.util.Hashtable;
       4 import java.util.Iterator;
       5 
       6 public class HashTableDemo {
       7 
       8     /**
       9      * 时间:2014年4月22日17:17:56
      10      * 目的:HashTable的应用
      11      */
      12     public static void main(String[] args) {
      13         //创建一个hashtable的对象
      14         Hashtable ht = new Hashtable();
      15         
      16         Emp emp1 = new Emp("01", "陈奕迅", 20.3f);
      17         Emp emp2 = new Emp("02", "俞敏洪",1200f );
      18         
      19         ht.put("01", emp1);
      20         ht.put("02", emp2);
      21     //    ht.put(null, null);不能在hashtable中用null,在hashmap中可以。
      22         
      23         //查找,查找编号为02的员工
      24         if(ht.contains("02"))
      25         {
      26             System.out.println("可以找到该员工");
      27             
      28             Emp emp = (Emp)ht.get("02");
      29             System.out.println("名字是:"+emp.getName());
      30         }else {
      31             System.out.println("没有找到该员工");
      32         }
      33         
      34         //遍历HashMap中所有的Key和Value
      35         Iterator iterator = ht.keySet().iterator();//这一句话不能漏
      36         while(iterator.hasNext())
      37         {
      38             //取出key
      39             String keyString = iterator.next().toString();
      40             
      41             Emp emp = (Emp)ht.get(keyString);
      42             System.out.println("编号"+emp.getEmpNo());
      43             System.out.println("名字"+emp.getName());
      44             System.out.println("薪水"+emp.getSal());
      45         }
      46         
      47     }
      48 
      49 }
    7. Hashtable与hashMap的区别:1.hashtable是基于陈旧的Dictionary的,hashMap是java1.2引进的map接口的一个实现。2.hashTable是同步的,保证了hashtable中的对象是线程安全的,不过相对速度慢。3.hashMap可以让你将空值作为一个条目的key或value,但是Hashtable是不能放空值的。
    8. 集合类完,总结:1.如果要求线程安全可以使用Vector,hashtable。2.不要求同步使用Arraylist,LinkedList,hashMap.3.如果要求键值对,用HashMap和Hashtable。4.如果数据量很大,又要线程安全考虑vector。
  • 相关阅读:
    css 和 svg 实现蚂蚁行军效果
    ASP.NET Core使用Swagger实现接口文档并分组
    Centos7+DockerCompose部署ASP.NET Core3.1应用
    Centos7+Docker部署ASP.NET Core3.1应用
    ASP.NET Core下的Cache
    在asp.net web form项目中添加webapi接口
    windows服务中对外提供API接口
    ASP.NET Core使用log4net记录日志
    SSL踩坑ERR_SSL_VERSION_OR_CIPHER_MISMATCH
    C# 调用微信接口上传素材和发送图文消息
  • 原文地址:https://www.cnblogs.com/songwenju/p/3681084.html
Copyright © 2011-2022 走看看