Java数组

声明

  • 学习笔记

  • 仅供学习和参考

数组–引用类型

核心

数组名

数据–元素 element

位置 index–下标、索引 从0开始/

数组个数=长度=最大index+1

元素存放有序

元素是可以重复的

一维数组

声明

type[] 数组名;或 type 数组名[];

初始化

  • 方法一 静态初始化

    type[] 数组名 = {值,值,…};

 int[] arr = {1,3,4,4};
  • 方法二 动态初始化

    type[] 数组名 = new type[size];//type 保持一致

    size 存储个数

  int[] array = new int[4];

  array[0]=1;

  array[2]=2;

注意

使用动态初始化的方式创建数组是有默认值

byte short int long 0

float double 0.0

char ‘\u000’

引用类 null

数组长度

数组长度=数组名.length length是一个属性

 public static void main(String[] args) {
        int[] arr = new int[3];
        int length = arr.length;
        System.out.println("length="+length);
    }

获取数组元素

数组名[index]

   public static void main(String[] args) {
        int[] arr = new int[3];
        int a = arr[0];
        System.out.println(a);
    }

数组下标越界异常

int[] arr = {1,3,4,4};

arr[-1];

arr[4];//数组下标越界异常 下标为0 1 2 3

public static void main(String[] args) {
        int[] arr = {1,3,4,4};
        System.out.println(arr[-1]);
    }

在这里插入图片描述

遍历数组

正序
int[] arr = {1,3,4,4};

for(int i=0;i<arr.length;i++){System.out.println(arr[i])

}
注意

for循环里面的int i,仅仅被这里认识。–作用域

逆序
int[] arr = {1,3,4,4};

for(int i=arr.length-1;i.=0;i--){System.out.println(arr[i])

}

修改元素

数组名[index] = 新的值;

数组逆置

int[] arr = {1,3,4,4};

int tmp = 0;

for(int i=0;i<arr.length/2;i++){

//不管长度是奇数还是偶数 同一类型运算 结果也是同类型 这是因为运算规则的封闭性

​	tmp=arr[i] ;

​	arr[i]=arr[length-1-i];

​	arr[length-1-i]=tmp;

}

for(int i=0;i<arr.length;i++){System.out.println(arr[i])

}

找最大值

		int[] arr = {1,2,4,2,5,4,0,3};
        int max = 0;
        max = arr[0];//比较的第一个数 初值
        for (int i=0;i<arr.length;i++){
            int tmp = arr[i];//设置中间变量 将每次的元素赋值给中间变量
            if (tmp > max) {//前面元素和后面元素比较 若是前面元素大将其值赋值给max
                max = tmp;
            }
            //若是后面元素大 说明arr[0]现在是最大的 则将第二个元素赋值给中间变量 重复上述操作 直到遍历完元素为止
        }
        System.out.println(max+"是最大值");

找最小值

		float[] array = {1.3f,2.5f,6.4f,2.1f,0.4f};
        float min = 0;
        min = array[0];
        for (int i=0;i<array.length;i++){
            float tmp = array[i];
            if (tmp < min) {
                min = tmp;
            }
        }
        System.out.println(min+"是最小值");

数组内存分析

存储空间连续

数组名 存放在栈 在C语言中数组就是一个指针

元素连续存放在堆 并有下标0 1 …

栈与堆的链接通过指针

增强for循环–foreach

for(type 名字:数组名){ // 名字就是数组中遍历的当前元素

​ System.out.println(名字);

}

Arrays.toSring()方法

将数组打印字符串

System.out.println(Arrays.toString(数组名));

结果:[值,值,值]

String str = Arrays.toString(数组名);

System.out.println(str);

二维数组

静态初始化

int [] [] array ={{1,2},{2,4}.{3,5}}

leng = 3;

动态初始化

type [] [] array = new type[size] [size];

array [0] [0] = 3;

获取二维数组元素

数组名 [index] [index];

修改二维数组元素

数组名 [index] [index] = 值;

遍历二维数组

int [] [] array ={{1,2},{2,4},{3,5}};

int len = array.length;//二维数组的长度 3

int[] arr = array[0];//array[0]={1,2};

for(int i=0;i<array.length;i++){for(int j=0;i<arr.length;j++){System.out.println(array[i] [j]);

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼不咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值