• Java基础第七天总结——数组


    目录:

    一、数组中常见的算法

    二、Arrays工具类的使用

    三、数组使用中的常见异常

    /*--------------------黄金分割线------------------*/

    一、数组中常见的算法

    1. 数组元素的赋值(杨辉三角、回形数等)
    2. 求数值型数组中元素的最大值、最小值、平均数、总和等
    3. 数组的复制、反转、查找(线性查找、二分法查找)
    4. 数组元素的排序算法
     
    数组的复制:
    方法:遍历、赋值arr[i] = arr1[i];实现真正的复制
    arr = arr1;
    arr和arr1存的地址值相同,都指向了堆空间的唯一的一个数组实体。所以arr内元素变化(实际是数组对象在内存中发生了变化),打印出的arr1依旧是指向的同一个数组。
    数组元素的赋值:
    arr[0] = arr1[0];对数组元素的赋值。
     
    数组的反转:
    方法:遍历、再交换头尾关键字;
     
    数组的查找:
    方法一:遍历、一一对应查找;
     
    注:除了基本数据类型的变量,实际操作都是对内存中的实体进行操作。基本数据类型传的是实际值,引用数据类型传的是对象的地址值。
     
    线性查找的思想:
    1.在给定的一列值中,进行顺序查找,从头到尾进行对比查找。
    确认要查找的元素,遍历数组,如果.equals()内容相等,则为找到,break;如无相等内容,则为未找到。
     
    二分法查找的思想:
    1.必须为有序数组
    2.确定所需查找的关键字,定义初索引,末索引。定义一个中间关键字middle。定义一个循环结构:将表中间的关键字middle与要查找的关键字进行对比,如果相等则取middle,break;否则将表分为前后两个子表,如果所查关键字大于中间关键字middle,则在对比前一子表的中间的关键字middle,此时末索引则为middle - 1;如果小于middle,则再查后一子表的中间关键子middle。此时初索引为middle + 1;以此循环找到middle和所需要查的关键子相等即可。
    备注:定义一个boolean isFlag = true,在for循环外根据isFlag的结果输出未找到。
     
    数组元素的排序算法:
    排序算法分类:内部排序和外部排序
    内部排序:不借助外部存储,排序操作直接在内存中完成
    外部排序:借助外部存储,数据量大,可以认为外部排序是由多次内部排序组成的。
     
    十大内部排序算法:

     算法的5大特征:

    冒泡排序的排序思想:

    1.比较相邻的两个数,如果第一个比第二个大,则交换。(升序)

    2.对每一对相邻元素进行对比,最后的元素为最大的数。

    3.重复以上操作,除了最后一个。

    4.持续每次对越来越少的元素重复上面的步骤。

    快速排序的排序思想:

    1.正式开发中常见的排序方法。

    2.在数列中挑一个元素,称为“基准”。

    3.定义一个low和high,比较这个基准,当发现有比基准小的数放前面,比这个基准大放在后面。当low和high相交的时候,low和这个基数交换。则基数左边为小于基数,右边为大于基数。

    二、Arrays工具类的使用

     java.util.Arrays类即为操作数组的工具类,包含用来操作数组(如排序和搜索)的各种方法。

    三、数组使用中的常见异常

    1.数组角标越界异常(ArrayIndexOutOfBoundsException)

    访问到数组中的不存在的角标时发生

     2.空指针异常(NullPointerException)正式开发中比较常见

    引用没有指向实体,却在操作实体中的元素时。

  • 相关阅读:
    SpringBoot读取Resource下文件的几种方式(十五)
    Springboot+vue前后端分离文件上传、下载方式及与Spring的异同(十四)
    springboot多个service互相调用的事务处理(十三)
    Bigdecimal用法
    Linux常见wenti
    informix常见问题
    Spring-boot常见问题(十二)
    浅析VO、DTO、DO、PO的概念、区别和用处(八)
    Tbase读写分离与分库分表
    函数的节流和抖动
  • 原文地址:https://www.cnblogs.com/zhoutie170821/p/11755706.html
Copyright © 2020-2023  润新知