首页 > 其他分享 >数组

数组

时间:2024-02-07 17:23:18浏览次数:21  
标签:变量 int 元素 数组 类型 new

数组的定义

  • 数组是相同类型数据的有序集合;
  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
  • 其中,每一个数据称为一个数组元素,每个的数组元素可以通过下标访问它们。

数组声明创建

  • 首先必须声明数组变量,才能够在程序中使用数组。

    下面是声明数组变量的语法:

    dataType[] arrayRefVar;//首选的方法
    或
    dataType  arrayRefVar[];//效果相同,但不是首选方法
    
  • Javay语言使用new操作符来创建数组,语法如下:

dataType[] arrayRefVar=new dataType[arraySize];
  • 数组的元素是通过索引访问的,数组索引从0开始;
  • 获取数组长度:
arrays.length

三种初始化

  • 静态初始化
int[] a={1,2,3};
Man[] mans={new Man(1,1),new Man(2,2)};
  • 动态初始化
int[] a=new int[2];
a[0]=1;
a[1]=2;
  • 数组的默认初始化
    • 数组是引用类型,它的元素相当于类的实例变量,因此数组已经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

数组的四种基本特点

  • 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

  • 其元素必须是相同类型的,不允许出现混合类型。

  • 数组中元素可以是任何数据类型,包括基本类型和引用类型。

  • 数组变量属引用类型,数组也可以看成是对象,数组中每个元素相当于该对象的成员变量。

    数组本身就是对象,Java中对象是在推中的,因此数组无论保存原始类型还是其他对象类型,

    数组对象本身是在堆中的。

数组边界

  • 下标的合法区间:[0,length-1],如果越界就会报错;
public static void main(String[] args){
    int[] a=new int[2];
    System.out.println(a[2]);
}
  • ArrayIndexOutOfBoundsException:数组下标越界异常!
  • 小结:
    • 数组是相同数据类型(数据类型可以为任意类型)
    • 数组也是对象。数组元素相当于对象的成员变量。
    • 数组长度是确定的,不可变的。如果越界,则报:ArrayIndexOutOfBoundsException

数组使用

  • 普通的for循环
  • For-Each循环
  • 数组作方法入参
  • 数组作返回值

多维数组

  • 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每个元素的都是一个一维数组。
  • 二维数组
int a[][]=new int[2][5]
  • 解析:以上二维数组a可以看成一个两行五列的数组。
  • 思考:多维数组的使用?
num[1][0];

标签:变量,int,元素,数组,类型,new
From: https://www.cnblogs.com/jianghongyi/p/18011101

相关文章

  • 牛牛的等差数列(树状数组,区间加等差数列、区间求和)
    https://ac.nowcoder.com/acm/contest/5157/C区间加等差数列,区间求和树状数组,二阶差分\(b_i=a_i-a_{i-1}\)\(c_i=b_i-b_{i-1}\)\[\sum_{i=1}^na_i=\sum_{i=1}^n\sum_{j=1}^ib_j=\sum_{i=1}^n\sum_{j=1}^i\sum_{k=1}^jc_k\\=\sum_{k=1}^nc_k\sum_{i,j}[k\......
  • [数据结构] 数组与特殊矩阵
    写在前面偷懒,先写了数组,列表要画图,所以今天就先不写了数组的定义数组是由n个相同类型的数据元素构成的有限序列。每个数据元素被称为一个数组元素,每个元素在n个线性关系中的序号称为该元素的下标,下标的取值范围称为数组的维界。数组与线性表的关系:数组是线性表的推广。一维数......
  • JavaScript 实现类似SQL 左联接式的对象数组合并
    在JavaScript中,你可以使用对象合并(Objectmerging)来模拟数据库的左联接操作。左联接操作会将两个对象的特定属性进行合并,类似于SQL中的LEFTJOIN操作。假设你有两个对象,每个对象代表一个表:consttable1=[{id:1,age:30},{id:3,age:25},];consttable2......
  • 【CPL-2023】W4 W5笔记-循环、多维数组
    编码练习选择排序冒泡排序二分法 循环多维数组标量:保存单一数据项聚合变量:存储成组的数据:数组,结构体数组检查下标是否越界地址消除器--检查地址取值时是否合法在同一个表达式中对i同时有取值操作和++操作,不同编译器有可能行为不一致,所以不建议这么写i......
  • 【CPL-2023】W3笔记-条件、循环、数组
    分支结构程序的生存期if();等价于if(){  ;}级联ifif(){}elseif(){}elseif(){}else{}关系运算符优先级低于算术运算符判等运算符优先级低于关系运算符多出口程序不容易调试(if多个分支中多个pritf类似这种程序)可以调整多出口程序为单出口......
  • 代码随想录算法训练营第十三天 | 59.螺旋矩阵II 209.长度最小的子数组 977.有序数
    977.有序数组的平方 已解答简单 相关标签相关企业 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16......
  • JS数组添加元素的三种方式
    JS数组添加元素的三种方式1、push()结尾添加数组.push(元素)参数描述newelement1必需。要添加到数组的第一个元素。newelement2可选。要添加到数组的第二个元素。newelementX可选。可添加多个元素。2、unshift()头部添加数组.unshift(元素)参数描述newelement1必......
  • shell数组-1
       近期在目录遍历时突然想到了shell中数组的概念于是乎就把需要遍历的目录结构存放到数组中,然后再取数组中值--也就是目录,做统计目录大小或文件数量使用。在该项目中目录结构非常清晰,具体目录为/年份/月份/日期/小时/相应固定的目录,比如/2019/01/31/23/xunjian/*.jpg数组定义......
  • 树状数组
    【树状数组是什么】树状数组(BinaryIndexedTree,BIT)支持单个元素修改和前缀查询。比较一下:子段和修改单个元素数组\(O(n)\)\(O(1)\)前缀和\(O(1)\)\(O(n)\)树状数组\(O(\logn)\)\(O(\logn)\)【树状数组的实现】比如\(a\)数组有16个元素......
  • 34 数组操作符的重载
    数组访问的一些思考string类最大限度地考虑了C字符串的兼容性。可以按照使用C字符串的方式适应string对象。#include<iostream>#include"add.h"usingnamespacestd;intmain(void){strings="safbd1334";intn=0;for(inti=0;i<s.length()......