java数组

  • 1.定义

    • 相同类型数据的有序集合
    • 按照一定的先后次序,从零开始
    • 与c++类似
    • 是引用类型
  • 2.数组的声明创建

    • 声明数组的变量
      • 1)动态初始化(包含默认初始化):数据类型【】 变量名(常用)
      • 2)数据类型 变量名【】(这个是为了跟c/c++接轨)
      • 3)静态初始化:数据类型 【】 变量名={具体存值,具体存值......}(这种数组长度会自动根据输入存值的数量确定)
      • 4)引用类型
    • 使用new早作 孚来创建数组
      • 数据类型 【】 变量名=new 数据类型【容量】

    • 数组通过下标进行所以今年访问,从0开始
    • 获得数组长度:arrays.length
    • 未赋值的会默认为0/null
  • 3.内存分析

      • 存放new的对象和数组
        • new
      • 可以被所有的线程共享,不会存放别的对象引用
      • 存放基本变量类型(会包含这个变量类型的具体数值)
        • 声明
      • 引用对象的变量(会存放这个引用的地址)
    • 方法区
      • 可以被所有线程共享
      • 包含了所有的class和static变量
    • 下标越界报错
    • Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10
      • at array.demo1.main(demo1.java:10)
  • 4.数组的特点

    • 4.1其长度是确定的,数组一旦被创建,它的大小是不可以改变的
    • 4.2元素必须是相同类型的
    • 4.3元素可以使你任意数据类型,包括基本类型和引用类型的
    • 4.4数组变量引用类型,数组可以看成是对象,每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中的
  • 5.数组边界

  • 6.数组的使用

    • 增强性for循环:
      • 数组变量名+.for(省略数组下标>>>比较适合输出整个数组元素)

    • 数组作函数参数

    • 数组作返回值

  • 7.多维数组

    • def:数组的数组
    • 二维数组的定义:数据类型 变量名[][]=new int[数量a][数量b];>>a行b列矩阵

    • 输出的是一串地址,说明a[0]是地址

  • 8.Arrays类

    • 数组的工具类:Java.util.Arrays
    • 若数组为空会抛出异常
    • binarySearch:二分查找法
    • fill:给数组赋值,将给与的数值赋值给数组的所有元素

    • 这个是Array.fill(数组,下标1,下标2,赋值a):将下标1到下标2之间的元素赋值为a(左闭右开)

    • equals:比较数组内元素是否相等
    • copyof
    • sort:排序(升序)

    • tostring:可以将整个数组转变成string类型

  • 9.冒泡排序

    • 理论:从前往后对相邻的两个元素进行比较,若前者大于(小于)后者,就将前者与后者交换,就能在一次遍历中将最大(小)的元素排到末尾,由此一共进行n-1次遍历(每次遍历的长度-1),完成从小到大(从大到小)的排序.
  • 10.稀疏数组

    • (数据结构)
    • 将没有意义的数据去除
    • def:当一个数组中大部分元素为0,或者为同一个值的数组是,可以使用稀疏数组来曹薰该数组
    • 处理方式:
      • 记录数组一共有几行几列,有多少不同值
      • 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模

      • (待补充)ints.for

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值