zoukankan      html  css  js  c++  java
  • Java API 之集合

    异常的顶级父类是 Throwable。
    异常的捕获方式:多个catch;捕获父类,统一处理;将同一组异常之间用 | 隔开,分组处理 --- JDK1.7
     
    1. List<E>中的元素是可以重复的。
    1.1 ArrayList 扩容是增加一半,是通过右移实现的。增删操作相对复杂,查询操作相对简单。内存空间是连续的。是一个线程不安全的列表!!
     
    1.2 LinkedList - 链表
    基于节点(Node)来实现的。利用节点来存储数据以及维系链表之间每一个节点的关系。增删操作相对简单,查询操作相对复杂。内存空间不连续。随用随开辟,不需要初始容量。是一个线程不安全的。
     
     
    2. Vector - 向量
    最早的列表,依靠数组存储数据,初始容量默认是10。每次扩容默认增加两倍(也可以默认初始和增量)。是一个线程安全的列表。
    elements() 返回迭代器(一个集合中有很多的元素,通过下标遍历是间接的过程,Java中提供了直接获取的方法,就是这个迭代器)
    迭代器:创建指针,通过指针的移动就获取那个元素,指定谁谁就上。每挪动一次,都要判断 hasMoreElements(),找下一个是 nextElement()(候诊室叫号,有人的话就叫下一个)??nextElement()
    关于 nextElement() 查看API文档得知是返回这个元素的下一个元素,因为之前在 while 循环中判断了后面是否还有元素,所以在这一步是到不了最后那个元素的,所以不用考虑。
    又去百度了一下,说的是nextElement() 如果 Enumeration 中是第一个元素,就取这个,接着联合 hasMoreElement()可以一次取下一个元素。
     
    2.1 Stack - 栈
    继承了Vector。遵循后进先出/先进后出的原则。(比如往盒子里放东西,从上往下挪,最后诺进去的东西就先拿出来)。最先放入栈中的元素 ---栈底元素,最后放入栈中的元素 --- 栈顶元素。将元素放入栈中 --- 入栈/压栈,将元素从栈中取出 --- 出栈/弹栈。
    练习:使用数组/节点完成一个Stack --- empty peek pop push search
     
    3. Set - 散列集合
    包含的元素不重复。
     
    3.1 HashSet
    不包含重复的元素,不保证元素的存储顺序。底层基于HashMap来进行数据的存储。默认初始容量是16,默认加载因子是 0.75f。
    HashMap 底层是基于数组 + 链表结构
     
     
    3.2 TreeSet - 对元素进行整体的自然排序(升序),需要这个元素对应的类实现 comparable 接口
     
    Comparator --- 用于给某个对象单独指定规则。
     
  • 相关阅读:
    PHP 高精度计算
    PHPWord使用方法
    羽毛球
    大数据(2)
    大数据(1)
    Centos 7 启动错误:XFS_WANT_CORRUPTED_GOTO 修复
    selenium 自动化工具
    python 开发技巧(0)-- 各个系统的python安装
    Yii简单使用阿里云短信教程!
    VMware虚拟机 Ubuntu 实用技巧 (2)桥接模式连接网络与网卡的配置
  • 原文地址:https://www.cnblogs.com/tangdiao/p/9507433.html
Copyright © 2011-2022 走看看