• java容器


     一、java容器

      1.java容器类库中一共有两种主要类型:Collection和Map

        (1)Collection和Map的区别在于容器内每个槽所存储的元素的个数不同,Collection类型中,每个槽只有一个元素;Map类型中,持有key-value关联(key叫做键,value叫做值)像一个小型的数据库。所有的java容器都可以自动调整自己的尺寸。

        (2)容器关系:  

        

        (3)Collection的子类。

          List类

            1.ArrayList:以特定顺序存储元素,所以取出来的顺序和放入的顺序可能不同。 

            2.LinkedList:插入、删除、移动元素方便,随机访问元素差

          Set:每个值只能保存1个对象,不能含有重复元素。

            1.HashSet:使用散列函数

            2.TreeSet:使用红黑树

            3.LinkedHashSet:使用链表结合散列函数

          Queue:先进先出的容器

        (4)Map的子类有以下的3个:

          1.HashMap

          2.HashTable

          3.TreeMap

        (5)其他特征:

          List、Set、Map将所有的对象一律视为Object类型  

          Collection、List、Set、Map都是接口,不能实例化。继承自他们的ArrayList、Vector、HashTable、HashMap、Stack都是具体的class,这些才可以被实例化

          vector容器确切的知道它所持有的对象属于什么类别。Vector不进行边界的检查

        (6)关于Collections。

          Collections是关于集合的一个帮助类,提供了一些列的静态方法实现和各种集合的搜集、排序、线程完全化等操作。

        (7)如何选择容器类。

          容器类仅持有对象的引用,而不是将信息复制一份至数列的某个位置,一旦将对象放入容器中,将会损失对象的类别信息

          在各种List中,最好的做法是以ArrayList作为默认选择。当插入删除比较频繁时使用LinkedList(),Vector总是比ArrayList要慢;在各种Set中,HashSet通常优于HashTree。只有当需要产生一个经过排序的序列时,采用TreeSet。HashSet的意义是用来维护其内元素的排序状态;在各种Map中,HashMap用于快速查找。当各种元素固定的时候,最好使用Array,因为Array是效率最高的。      

      2.HashMap与HashTable的区别?

        (1)他们都属于Map接口的类,实现了将胃一直映射到特定的值上

        (2)HashMap类没有分类或者排序,允许将一个null键和多个null值

        (3)Hashtable类似于HashMap,但是不允许null键和null值,比HahsMap慢,因为其实同步的。

        (4)两者最大的不同是,Hashtable方法是Synchronize的,而HashMap不是;在多个线程访问 HashTable的时候,不需要自己为它的方法实现同步,而HashMap就必须为之提供同步。两者的性能不会有很大的差异。

  • 相关阅读:
    小心!你被“大数据”锁定了
    深入浅出安卓,怎样从零学好移动开发
    Cocos2d-x3.0触摸
    将Spring源代码导入eclipse步骤
    vertica时间计算SQL语句实例:统计一天内登录的用户
    cocos2d-x 2.2 创建项目
    Codeforces-475B Strongly Connected City
    java socket通信-传输文件图片--传输图片
    listView解决滑动时黑色背景问题
    UVa 10450
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10499975.html
Copyright © 2020-2023  润新知