zoukankan      html  css  js  c++  java
  • Java集合常用类特点整理

    集合的结构如下图所示:

    Java集合常用类特点整理


    集合的两个顶级接口分别为:Collection和Map

    Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序的(存取顺序一致),可以通过List脚标来获取指定元素;而Set不可以有重复元素,元素是无序的。

    List接口中,比较常用的类有三个:ArrayList、Vactor、LinkedList。

    ArrayList :线程不安全的,对元素的查询速度快。

    Vector :线程安全的,多了一种取出元素的方式:枚举(Enumeration),但已被ArrayList取代。

    LinkedList :链表结构,对元素的增删速度很快。

    Set接口中,比较常用的类有两个:HashSet、TreeSet:

    HashSet:要保证元素唯一性,需要覆盖掉Object中的equals和hashCode方法(因为底层是通过这两个方法来判断两个元素是否是同一个)。

         

    TreeSet:以二叉树的结构对元素进行存储,可以对元素进行排序。

          排序的两种方式:

                 1、元素自身具备比较功能,元素实现Comparable接口,覆盖compareTo方法。

                 2、建立一个比较器对象,该对象实现Comparator接口,覆盖compare方法,并将该对象作为参数传给TreeSet的构造函数(可以用匿名内部类)。

    Map接口其特点是:元素是成对出现的,以键和值的形式体现出来,键要保证唯一性:常用类有:HashMap,Hashtable ,TreeMap。

    HashMap:线程不安全等的,允许存放null键null值。

    Hashtable:线程安全的,不允许存放null键null值。

    TreeMap:可以对键进行排序(要实现排序方法同TreeSet)。

    Collection和Map两个接口对元素操作的区别:

    存入元素:

    Collection接口下的实现类通过add方法来完成,而Map下是通过put方法来完成。

    取出元素:

    Collection接口下:List接口有两种方式:1、get(脚标);2、通过Iterator迭代方式获取元素;而Vactor多了一种枚举(Enumeration)的方式。Set接口通过迭代的方式获取元素。

    Map接口下:先通地keySet获取键的系列,然后通过该系列使用Iterator迭代方式获取元素值。

  • 相关阅读:
    【转】fastjson-1.2.47-RCE
    某安全设备未授权访问+任意文件下载0day
    关于伴侣
    【转】Why BIOS loads MBR into 0x7C00 in x86 ?
    【生活】北京旅游攻略
    利用Python读取图片exif敏感信息
    A MacFUSE-Based Process File System for Mac OS X
    linux-强制断开远程tcp连接
    Navicat use HTTP Tunnel
    python mac下使用多进程报错解决办法
  • 原文地址:https://www.cnblogs.com/Huanghaihui/p/6114889.html
Copyright © 2011-2022 走看看