zoukankan      html  css  js  c++  java
  • 第十一章 集合框架

    想要存储多个对象我们学习过的可以使用数组,但是如果存储的对象个数会不断变化的话,用数组就不合适了.因为数组存储的数组是定长的.

    所以java中提供了集合类,让我们更方便的存储变长个数的对象.

    集合和数组的最大区别是:

    数组的长度是固定的,但集合的长度是可变的.

    数组只能存储相同类型的数据,而集合能够存储不同类型的数据.

    集合按照存储结构可以分成俩类:

    1、Collection单列集合:用于存储一系列符合某种规则的元素

       子接口:List、Set.

      List中可以有重复的元素,并且List类中带有索引,可以通过索引精确得操作集合中的元素

    2、Map双列集合:用于存储有映射关系的数据,有主键关系,就像是Python的字典.

      子接口:HashMap、TreeMap

    Collection接口:

    是所有单列集合类的父接口,有一些单列集合(List 、Set)通用的方法:

     用于增加数据:

       add(E e):添加成功返回True,失败返回False

       addAll(Collection c) 将参数集合中的元素添加到调用对象集合中.

    用于删除数据:

       clear():移除集合所有的元素

      remove(Object o):删除集合中指定的元素

       removeAll(Collection o):删除调用集合中的o集合中的所有元素

      retainAll(Collection o):保留调用集合中与集合o中元素相同的元素,其他全部删除

    用于查看:

      size() :查看集合元素的个数

    用于判断:

      isEmpty():判断集合是否为空

      contains(Object o):判断调用集合元素中是否有o对象

       containsAll(Collection c):判断集合中是否存在有c集合

    Collection的子接口:List类

    常用方法:

    用于增加:

      void add(int index,E element):将E元素添加到集合的index位置

      boolean addAll(int index,Collection c):将集合c中的元素添加到调用集合的index处,如果失败会返回false,成功会返回true

    用于获取:

      Object get(int index):获取调用集合中index位置的元素

      indexOf(Object o):获取调用集合中对象中o对象出现的位置索引值

      lastIndexOf(Object o):获取调用集合对象中o对象最后一次出现的位置索引值

      List subList(int fromIndex,int toIndex):返回调用集合中位置索引值为fromIndex到toIndex值的所有元素,返回值为集合.

    用于修改:

      set(int index,E element) 将索引值为index的元素替换成element对象,并将替换后的元素返回.

    List接口有俩个常用实现类,

    ArrayList

    当ArrayList的容量不够时,会自动增长为原来的1.5倍.在内存空间的地址是连续的,所以ArrayList数据查找速度快,但是增删数据慢.

    ArrayList的大多数常用方法都是从Collection和List那继承来的,就不再介绍了.

    LinkedList

    LinkedList和ArrayList相反,虽然查询速度慢,但是增加和删除元素快,因为LinkedList类底层是用链表来实现的,

    每次查找元素需要从头往下找.

    常用方法:

    void addFirst(Object o) :将指定元素插入到此列表的开头

    void addLast(Object o):将制定元素插入到此列表的结尾

    Object getFirst():获取列表第一个元素

    Object getLast():获取列表最后一个元素

    Object removeFirst():移除并返回此列表的第一个元素

    Object removeLast():移除并返回此列表的最后一个元素

    Iterator迭代器

    为了方便处理集合中的元素,提供了一些方法来处理集合中的元素.

    就是Iterator了

    Iterato迭代器获取:(使用集合自带的iterator方法)

    Iterator i=集合对象.iterator();//获得自身的迭代器

    常用方法:

    boolean hasNext() :检查是否还有元素可以迭代,如果有则返回true,无返回false

    next() :返回迭代的下一个元素

    remove():删除迭代器返回的最后一个元素,从Iterator指向的collection中.

    Iterator常与while语句配合使用:

    while(iterator.hasNext())
    {
        System.out.println(itrator.next());
    }

    Collection的另一个子接口:Set

    Set与List不同的是:Set存储数据是无序的,并且存入的数据是不可重复的(按照某种规则)

    Set有俩个实现类:

    HashSet:根据对象的哈希码值来确定元素在集合中的存储位置,所以具有良好的存取和查询能力

    TreeSet:已二叉树的方式来存储元素,他可以实现对集合中的元素进行排序.

  • 相关阅读:
    zzbank oneOpencloud Env linuxaix6.1 interactiveMaintain(nfs,aix genintall基于系统iso光盘,aix6.1 puppet-Agent,Cent6.4 puppetServer,agent time no syn case Er)
    openStack core service Components Ins shell scripts and simple provision
    openStack deep dive,Retake Policy
    openStack开源云repo db local or on-line 实战部署之Ruiy王者归来
    Power Network (poj 1459 网络流)
    Eclipse.ini參数设置(Maven Integration for Eclipse JDK Warning)
    移动三大平台和三大开发模式对照分析
    Android动态设置字体颜色
    Windows 8提升普通管理员权限为超级管理员权限以及激活超级管理员Administrator
    CDN具体解释(篇一)
  • 原文地址:https://www.cnblogs.com/youjunhui/p/14910868.html
Copyright © 2011-2022 走看看