zoukankan      html  css  js  c++  java
  • java初学者笔记总结day13

    数组:一种容器,可以装很多元素,元素跟下标绑定,下标范围(0到len-1)
    通过下标访问元素。长度固定。

    collection:一种容器,可以装很多元素,长度不固定(可以动态增加或减少)。
    collection容器都有管理者-》Iterator--》怎么获取容器.Iterator()
    通过管理者可以遍历容器元素。

    list:一种容器,可以装很多元素,长度不固定(可以动态增加或减少)。
    元素跟下标绑定,下标范围(0到len-1),通过下标访问元素。
    元素可以重复。

    list实现类
    a)arrayList:底层是数组,线程不安全,对比linkedList读取设置元素效率高,插入删除效率底。
    b)linkedList:底层是双向链表,对比arrayList读取设置元素效率低,插入删除效率高。
    c)vector:底层是数组,线程安全

    set:一种容器,可以装很多元素,长度不固定(可以动态增加或减少)。
    元素不能重复,没有绑定下标。

    set实现类
    a)hashset:底层是hashMap,通常使用hashset效率比treeset高。
    b)treeset:底层是treeMap,如果需要自动对添加元素做排序-使用。

    map:一种容器,可以装很多键(类似于下标)值(类似于元素)对,通过键访问值。
    键不能重复,值可以重复,长度不固定(可以动态增加或减少)。

    map实现类
    hashmap:底层是数组加单向链表,线程不安全,存储的键和值可以为null
    hashtable:底层是数组加单向链表,线程安全,存储的键和值不可以为null
    treemap:底层是红黑树,如果需要自动对添加键值对按照键做排序-使用。
    Properties:继承了hashtable,新增了api,与Properties文件做交互
    (读取文件数据,写数据文件)使用。

    怎么选择?
    1)需要的容器存储单个元素,长度固定,用于访问容器的数据--》数组
    2)需要的容器存储单个元素,长度不固定,要求可以存储重复元素--》list
    3)需要的容器存储单个元素,长度不固定,要求不可以存储重复元素--》set
    3)需要的容器存储一对数据(键-值),长度不固定--》map

  • 相关阅读:
    由@Convert注解引出的jackson对枚举的反序列化规则
    List.contains()与自动拆箱
    Utf-8+Bom编码导致的读取数据部分异常问题
    ResouceUtils.getFile()取不到Jar中资源文件源码小结
    Java自动装箱中的缓存原理
    Javaconfig形式配置Dubbo多注册中心
    logback多环境配置
    Spring @Scheduled @Async联合实现调度任务(2017.11.28更新)
    Nginx的Access日志记录的时机
    Mysql索引引起的死锁
  • 原文地址:https://www.cnblogs.com/Tab1994/p/5459506.html
Copyright © 2011-2022 走看看