• JAVA OOP 集合框架


    1.Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

         数组和集合的主要的区别

    2.(1)     数组可以存储基本数据类型和对象,而集合中只能存储对象(可以以包装类形式存储基本数据类型)。

    (2)     数组的长度是固定的,集合长度是可以动态改变的

    (3)     定义数组时必须指定数组元素类型,集合默认其中所有元素都是Object

    (4)     无法直接获取数组数组实际存储的元素个数,length用来获取数组的长度,但可以通过size()直接获取集合实际存储的元素个数

    (5)     集合有多种实现方式和不同的适用场合,而不像数组仅采用分配连续的空间方式

    (6)     集合以接口和类的形式存在。具有封装,继承和多态等类的特性,通过简单的方法和属性调用即可实现各种复杂的操作,大大提高软件的开发效率。

      3、  最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。

    第七章  集合框架
     
    1.如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架
    2.Java集合框架提供了一套性能优良,使用方便的接口和类,他们位于Java.util包中
    3.(1)接口
      (2)具体类
      (3)算法:collection——提供对集合进行排序,遍历等多种算法实现
    注:collection接口存储一组不唯一,无序的对象;
    List接口存储一组唯一,有序(插入顺序)的对象;
    Set接口存储一组唯一,无序的对象
    4.(1)Map接口存储一组键值对象,提供key到value的映射 
       (2)ArrayList实现了长度可变的数值,在内存中分配连续的空间(遍历元素和随机访问元素的效率比较高)
    5.List的常用方法
    方法名 说明
    boolean add(Object  o)

    在列表的末尾顺序添加元素,

    起始索引位置从0开始

    voidadd(int index,Object o)

    在指定的索引位置添加元素。

    索引位置必须介于0和列表中元素个数之间

    intsize()

    返回列表中的元素个数

    Objectget(intindex)

    返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换

    boolean contains(Object o)

    判断列表中是否存在指定元素

    boolean remove(Object o)

    从列表中删除元素

    Object  remove(int index)

    从列表中删除指定位置元素,

    起始索引位置从0开始

    注:LinkedList提供对头部和尾部元素进行添加和删除操作的方法
    6.LinkedList的特殊方法
    方法名 说明

    void  addFirst(Objecto)

    在列表的首部添加元素

    void  addLast(Objecto)

    在列表的末尾添加元素

    Object  getFirst()

    返回列表中的第一个元素

    Object  getLast()

    返回列表中的最后一个元素

    Object  removeFirst()

    删除并返回列表中的第一个元素

    Object  removeLast()

    删除并返回列表中的最后一个元素

    7.Map的常用方法
    方法名 说明

    Objectput(Object key, Object val)

    以“键-值对”的方式进行存储

    Objectget (Object key)

    根据键返回相关联的值,如果不存在指定的键,返回null

    Objectremove (Object key)

    删除由指定的键映射的“键-值对”

    intsize()

    返回元素个数

    SetkeySet ()

    返回键的集合

    Collectionvalues ()

    返回值的集合

    boolean  containsKey(Object key)

    如果存在由指定的键映射的“键-值对”,返回true

    8.集合类对比
    (1)Vector和ArrayList的异同
     实现原理、功能相同,可以互用
     主要区别:•Vector线程安全,ArrayList重速度轻安全,线程非安全
    •长度需增长时,Vector默认增长一倍,ArrayList增长50%
    (2)Hashtable和HashMap的异同
     实现原理、功能相同,可以互用
     主要区别:•Hashtable继承Dictionary类,HashMap实现Map接口
    •Hashtable线程安全,HashMap线程非安全
    •Hashtable不允许null值,HashMap允许null值
    9.迭代器Iterator
    方法1:通过迭代器Iterator实现遍历 
      获取Iterator:Collection 接口的iterate()方法
     Iterator的方法
    •booleanhasNext():判断是否存在另一个可访问的元素
    •Object next(): 返回要访问的下一个元素
    方法2:增强型for循环

    for(元素类型t  元素变量x :数组或集合对象){

             引用了x的java语句

    }

    注:两者同样可以遍历其他集合类,通常使用增加for型循环

  • 相关阅读:
    多值参数
    TK图形界面
    匿名函数
    try -catch-finally一些要点
    C#枚举类型转换
    Linux下查看MySQL的安装路径
    linux安装oracle 报错[INS-20802] Oracle Net Configuration Assistant failed 解决办法
    suse-Linux下安装Oracle11g服务器
    window7 下安卓开发环境搭建
    学习Linux最简单的方法
  • 原文地址:https://www.cnblogs.com/SFHa/p/9030052.html
Copyright © 2020-2023  润新知