zoukankan      html  css  js  c++  java
  • Java的容器类Collection和Map

    一,概念

    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());

    }

  • 相关阅读:
    JS 实现的年月日三级联动
    【代码总结● Swing中的一些操作与设置】
    S7通信协议之你不知道的事儿
    .NetCore程序在Linux上面部署的实现
    什么是哈希表?
    什么是队列?
    什么是栈?
    什么是数组?
    什么是数据结构?
    什么是链表?
  • 原文地址:https://www.cnblogs.com/ningheshutong/p/5792119.html
Copyright © 2011-2022 走看看