----------android培训、java培训、java学习型技术博客、期待与您交流。------------ 
一、关于java中的集合类
       首先看一下,大致的框架流程图
      
通过这些我们能够看出来,通常我们常常採用的vector、arraylist、hashset。treeset,hashmap。hashtable,treemap、linkedlist类
关于vector和arraylist对照,vector是线程安全的,vector通过遍历。性能更高。

ArrayList和Vector功能类似。

Vector从Java 1.0起就存在,ArrayList从Java 1.2起才存在,较新。

所以Vector在JavaME、Card等各种微小版本号都能够使用,而ArrayList不能

ArrayList不具备线程同步的安全性,但速度较快。

Vector具备线程安全。

而对于hashmap和hashtable

Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的。HashMap是Java 1.2引进的Map接口的一个实现。

  

  或许最重要的不同是Hashtable的方法是同步的。而HashMap的方法不是。这就意味着。尽管你能够不用採取不论什么特殊的行为就能够在一个多线程的应用程序中用一个Hashtable,但你必须相同地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法能够让你同步訪问潜在的HashMap。这么做的结果就是当你不须要同步时,你不能切断Hashtable中的同步(比方在一个单线程的应用程序中),并且同步添加了非常多处理费用。

  

  第三点不同是,仅仅有HashMap能够让你将空值作为一个表的条目的key或value。HashMap中仅仅有一条记录能够是一个空的key,但随意数量的条目能够是空的value。这就是说,假设在表中没有发现搜索键,或者假设发现了搜索键,但它是一个空的值,那么get()将返回null。

假设有必要,用containKey()方法来差别这两种情况。

  

  一些资料建议。当须要同步时,用Hashtable,反之用HashMap。可是,由于在须要时,HashMap能够被同步,HashMap的功能比Hashtable的功能很多其它,并且它不是基于一个陈旧的类的,所以有人觉得,在各种情况下,HashMap都优先于Hashtable。

二、对于java集合框架

他们之间的比較:

    是否有序 是否同意元素反复
Collection
List
Set AbstractSet
  HashSet
  TreeSet 是(用二叉排序树)
Map AbstractMap 使用key-value来映射和存储数据。key必须唯一,value能够反复
  HashMap
  TreeMap 是(用二叉排序树)

  


黑马程序猿——JAVA基础——集合的更多相关文章

  1. 黑马程序猿————Java基础日常笔记---反射与正則表達式

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 黑马程序猿----Java基础日常笔记---反射与正則表達式 1.1反射 反射的理解和作用: 首 ...

  2. 黑马程序猿——————java基础

    一.软件开发 软件是什么? 软件是简单的来说,计算机数据和指令的集合,数据(比方年龄,性别).指令及时告诉计算机怎样对他进行处理.计算机但是没有人那么聪明啊! 二.图形化界面(GUI),主要特点就是. ...

  3. 黑马程序猿——JAVA基础——IO流

    ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  一. 一.IO流的三种分类方式 1.按流的方向分为:输入流和输出流 2.按流的数 ...

  4. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  5. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  6. 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换

    ------- android培训.java培训.期待与您交流! ---------- 集合框架的工具类:        Collections : 集合框架的工具类.里面定义的都是静态方法. Col ...

  7. 黑马程序员——JAVA基础之Map集合

    ------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...

  8. 黑马程序员——JAVA基础之set集合

    ------- android培训.java培训.期待与您交流! ---------- Set:       元素是无序(存入和取出的顺序不一定一致),元素不可以重复.    Set接口中常用的类: ...

  9. 黑马程序员——JAVA基础之List集合

    ------- android培训.java培训.期待与您交流! ---------- Collection : |--List:元素是有序的,元素可以重复.因为该集合体系有索引.         | ...

随机推荐

  1. bzoj3297[USACO2011 Open]forgot(dp + string)

    3297: [USACO2011 Open]forgot Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 137  Solved: 94[Submit] ...

  2. 出现“ORA-28000:the account is locked”的解决办法

    在Oracle 11g版本中,出于安全的考虑,所有Oracle的默认用户,包括SCOTT用户都被锁定.输入用户名和口令之后,会出现错误“ORA-28000:the account is locked” ...

  3. poj1101 the game 广搜

    题目大意: 类似于连连看,问从起点到终点最少需要几条线段. 规则: 1.允许出界. 2.空格的地方才能走. 分析: 题目做下来发现没有卡时间,所以主要还是靠思路.也就是说不用考虑离线算法.直接以每个起 ...

  4. SQL Server2008优化之SET STATISTICS开关

    一.准备工作 缓存对于某个查询的性能影响十分之大,所以优化之前要清空缓存. 清除Buffer Pool时面的所有缓存 DBCC DROPCLEANBUFFERS清除Buffer Pool里的所有缓存的 ...

  5. C# 禁止WebBrowser网页跳转时发出的声音

    ; const int SET_FEATURE_ON_PROCESS = 0x00000002; [DllImport("urlmon.dll")] [PreserveSig] [ ...

  6. Android开发之拍照功能实现

    参考链接:http://www.linuxidc.com/Linux/2013-11/92892p3.htm 原文链接:http://blog.csdn.net/tangcheng_ok/articl ...

  7. BZOJ2251 [2010Beijing Wc]外星联络 后缀数组 + Height数组

    Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in", "r", stdin ...

  8. 【转载】解决方案:git@github.com出现Permission denied (publickey)

    遇到的问题 今天心血来潮,想将intellij上的项目代码放到GitHub上管理. 在进行添加远程库的时候,出现了:git@github.com出现Permission denied (publick ...

  9. 【剑指Offer】60、把二叉树打印成多行

      题目描述:   从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行.   解题思路:   本题可类比第22题:从上往下打印二叉树,这两道题实际上是一回事,只不过这里我们多了一个分行打印 ...

  10. 【剑指Offer】23、二叉搜索树的后序遍历序列

      题目描述:   输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同.   解题思路:   对于后续遍历序列,序 ...