首页 > 其他分享 >数组

数组

时间:2022-12-12 00:00:12浏览次数:38  
标签:初始化 arr int 数据类型 数组 变量名

数组定义

格式1(推荐):数据类型[] 变量名; 例: int[] arr;
格式2:数据类型 变量名[]; 例: int arr[];

初始化

就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。数组的初始化分为两种方式:一种是静态初始化,一种是动态初始化。
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度
  格式:数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,…};
    例:int[] arr = new int[]{1,2,3};
  简化格式:数据类型[] 变量名 = {数据1,数据2,数据3,…};
    例:int[] arr = {1,2,3};

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
  格式:数据类型[] 变量名 = new 数据类型[数组长度];
    例:int[] arr = new int[3];
注意:两种初始化的方式是独立的,不可以混用。
获取数组长度(元素个数):格式:数组名.length

数组内存图

数组使用中经常遇到的两个小问题

1:索引越界(ArrayIndexOutOfBoundsException):访问了数组中不存在的索引对应的元素,造成索引越界问题
2:空指针异常(NullPointerException):对象不再指向堆内存,还想继续访问数据,访问失败

二维数组

格式1(推荐):数据类型[] [] 变量名; 例: int[] [] arr;
格式2:数据类型 变量名[] []; 例: int arr[] [];
格式3:数据类型[] 变量名[]; 例: int[] arr[];

 

 

 

 二维数组初始化

静态初始化:
  格式:数据类型[] [] 变量名 = new 数据类型[] []{{元素…},{元素…},{元素…},…};
    例:int[] [] arr = new int[] []{{1,2,3},{4,5,6},{7,8,9}};
  简化格式:数据类型[][] 变量名 = {{元素…},{元素…},{元素…},…};
    例:int[] [] arr = {{1,2,3},{4,5,6},{7,8,9}};
  注意:一维数组中元素的个位可以是不同的
    如: int[] [] arr = new int[] []{{1,2,3},{4,5},{6,7,8,9}};
动态初始化:
  格式:数据类型[] [] 变量名 = new 数据类型[m] [n];
    例:int[] [] arr = new int[2] [3];

二维数组内存图

 

二维数组遍历及元素打乱

public class ArrayTest02 {
    public static void main(String[] args) {
        //定义二维数组,并进行静态初始化
        int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        //创建随机数对象
        Random r = new Random();
        //遍历二维数组,进行元素打乱
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                //arr[i][j]
                int x = r.nextInt(arr.length);
                int y = r.nextInt(arr[x].length);
                //元素交换
                int temp = arr[i][j];
                arr[i][j] = arr[x][y];
                arr[x][y] = temp;
            }
        }
        //二维数组遍历展示
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

 

标签:初始化,arr,int,数据类型,数组,变量名
From: https://www.cnblogs.com/sunny-sml/p/16974798.html

相关文章

  • 已知一个排好顺序的原数组的情况下再插入一个数并不改变数组排序规律
    题目如下  代码如下1#define_CRT_SECURE_NO_WARNINGGS12#include<stdio.h>3intmain()4{5inta[11]={1,4,6,9,13,16,19,28,40,100......
  • 81. 搜索旋转排序数组 II
    已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0<=k<nums.length)上进行了 旋转 ,使数组变为......
  • Go语言基础之数组
    Array(数组)数组是同一种数据类型元素的集合。在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。基本语法://定义一个长度为3元素类型......
  • 33. 搜索旋转排序数组
    整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0<=k<nums.length)上进行了 旋转,使数组变为 [nums[k],nums[k+......
  • 数组比较
    importjava.util.Scanner;publicclassEext{publicstaticvoidmain(String[]args){double[]arr={1.1,8.4,9.6,7.7};A01array=newA......
  • c中的数组名
    //数组名是什么?数组名是首元素的地址//但是有两个例外sizeof(数组名)-数组名表示整个数组-计算的是整个数组的大小单位是字节#include<stdio.h>intmain(){inta......
  • 数组的注意事项
    intmain(){ chararr[]="abcdrf"; chararr1[]="abc";//里面包括abc\0 chararr2[]={'a','b','c'};//里面包括abc intarr3[]={0,1,2,3,4,5,6,7,8,9};......
  • 1827. 最少操作使数组递增
    1827.最少操作使数组递增classSolution{publicintminOperations(int[]nums){intn=nums.length;intres=0;for(inti=1;i......
  • 新手算法第一题----删除排序数组中的重复项
     * @param {number[]} nums * @return {number} */var removeDuplicates = function(nums) {  if(nums == 0 || nums == [])    return 0......
  • 二维数组传参和数组指针
     数组指针  “数组指针”是一种指针,该指针指向一个数组。就类似于“红苹果”,本质是一种苹果,“红”只是修饰苹果的一个定语。intarr[5]={1,2,3,4,5};int(*p)[5]=......