一,概念

JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。

java的容器类一共有两种主要类型,Colllection和Map。

两者的区别是:Collection是单个元素,而Map是存储一个键值对

两者的子类关系如下图所示:

二,子类介绍

1,Collection的子类如下:

  • List:将以特定次序存储元素,所以取出来的顺序可能和放入的顺序不同

    • ArrayList:擅长随机访问元素,但在List中间插入,删除,移动元素较慢
    • LinkedList,插入,删除,移动元素方便,随机访问元素差
  • Set:每个值只能保存一个对象,不能包含重复的元素
    • HashSet:使用散列数
    • TreeSet:使用红黑树
    • LinkedHashSet:使用离岸边结合散列函数

2,Map的子类有以下三个

  • HashMap
  • HashTable
  • TreeMap

三,其他特征

  • List,Set,Map将所有的对象一律视为Object类型
  • Collection,List,Set,Map都是接口,不能实例化。继承自他们的ArrayList,HashTable,HashMap等是具体类,这些才能被实例化
  • 关于Clooections,值针对集合类的一个帮助类,提供一系列静态方法来实现对集合的搜索,排序,线程安全化等操作,相当于array进行类似操作的类Arrays

四,如何选择容器

  • 在各种List中,最好的是以ArrayList作为默认选择,当插入,删除频繁时,使用LinkedList().
  • 在各种Set中,HashSet通常由于HashTree(插入,查找),只是当需要排序是,才用TreeSet
  • 在各种Map中,HashMap用于快速查找
  • 当元素固定时,最好使用Array,因为Array的效率是最高的。

五,HashMap和HashTable的区别

相同点:都继承了Map接口的类

不同点:

HashMap类没有分类或者排序,她允许一个null键和多个null值

HashTable和HashMap一样,但是不允许null键和null值,他比hashMap慢,因为它是同步的

hashTable的是contains方法,而hashmap的是containskey和containsvalue方法

Map遍历

for(Map.Entry<string,string> entry:map.entrySet){

system.out.printf(entry.getValue());

}

Java的容器类Collection和Map的更多相关文章

  1. JAVA 中的 Collection 和 Map 以及相关派生类的概念

    JAVA中Collection接口和Map接口的主要实现类   Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的 ...

  2. Java 8中Collection转为Map的方法

    Java 8中java.util.stream.Collectors提供了几个方法可用于把Collection转为Map结构,本文记录了个人对其中三个的理解. Method Return Type g ...

  3. java Iterator Iterable Collection AbstractCollection Map关系

    java.lang Interface Iterable<T>  实现该接口就可以使用for-each循环. java.util Interface Iterator<E>   ...

  4. java中关于Collection和Map相关的类&接口之间的关系

    上图(引用自)

  5. 【Java】集合概述Collection、Map

    Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...

  6. Java基础 @org.junit.Test-单元测试方法 + 操纵Collection和Map的工具类 : Collections 的sort/binarySearch/max/min等静态方法

      单元测试代码:  ( 在IDEA中先输入'@Test '然后根据提示进行自动修订即可!!运行时直接运行即可! 若有多个单元测试块的时候,直接把鼠标放在哪里就自动在哪里运行那个单元块) import ...

  7. 【转】java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别

    原文网址:http://www.360doc.com/content/15/0427/22/1709014_466468021.shtml java 容器类使用 Collection,Map,Hash ...

  8. Java容器类Collection,List,Set,Map.,Iterator,Collections工具类,Arrays工具类,Comparable

    Java容器类Collection,List,Set,Map.,Iterator,Collections工具类,Arrays工具类,Comparable接口,泛型 Collection,List,Se ...

  9. JAVA集合详解(Collection和Map接口)

    原文地址http://blog.csdn.net/lioncode/article/details/8673391 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父 ...

随机推荐

  1. Linux-网络连接-(VMware与CentOS)

    VMware虚拟机中安装CentOS,进行网络连接,分为两步,内网连接,与外网连接. 前提: 当你正确安装VMware后,网络适配器会增加2个新的网卡:(可在设备管理器->网络适配器中查看) 第 ...

  2. AE创建一个空白的Shapefile

    1.IField和IFieldEdit区别: IFieldEdit是继承IField的,因为IField的属性大部分是只读的(read-only),所以IFieldEdit就在IField的基础上多了 ...

  3. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十)态势标绘模块

    config.xml文件的配置如下: <widget label="态势标绘" icon="assets/images/impact_area_over.png&q ...

  4. android 史上最简单易懂的跨进程通讯(Messenger)!

    不需要AIDL也不需要复杂的ContentProvider,也不需要SharedPreferences或者共享存储文件! 只需要简单易懂的Messenger,它也称为信使,通过它可以在不同进程中传递m ...

  5. Linux常用命令:文件与目录

    目录与路径 cd:切换目录 例如:cd ~willhua,则回到用户willhua的主文件夹  cd ~或者cd,则表示回到自己的的主文件夹  cd -,则表示回到上个目录 pwd:显示目前所在目录 ...

  6. Android性能优化之内存优化练习

    练习题目地址:https://github.com/lzyzsd/MemoryBugs 分析及优化过程如下: 问题1 静态变量引用activity 使用神器LeakCanary检查内存泄露问题 从图中 ...

  7. Masonry使用注意事项

    1 理解自身内容尺寸约束与抗压抗拉 自身内容尺寸约束:一般来说,要确定一个视图的精确位置,至少需要4个布局约束(以确定水平位置x.垂直位置y.宽度w和高度h).但是,某些用来展现内容的用户控件,例如文 ...

  8. SQL2008使用json.net实现XML与JSON互转

    借助CLR,首先实现字符串的互转,然后使用存储过程实现JSON2table     public class JsonFunction    {        /// <summary> ...

  9. LINUX下的PHP

    由于linux系统的稳定性,大部分的PHP服务器都被部署在linux上,而且像redis等扩展在linux能得到更好的支持,所以对于PHP程序员来说,使用linux的功底也相当重要,接下来总结一下我从 ...

  10. 别踩白块儿游戏源码Android版

    这个项目有带说明文档,大家可以看看源码附件的说明文档吧,“别踩白块儿”是目前非常火的一款游戏,游戏非常简单刺激.关于具体怎么火法怎么玩我就不多说了,相信看到本文的朋友们都非常地清楚. 什么游戏火,我们 ...