【Java基础】数组、排序和查找(四)

一、数组

1、概念和声明

在这里插入图片描述
数组可以存放多个同一类型的数据,数组也是一种数据类型,是引用类型

  • 定义一个double类型的数组:double[] hens = {3, 5.1, 2, 4.6};
  • 数组的长度:hens.length 【C语言中:sizeof(arr) / sizeof(arr[0])

2、静态初始化

  • 静态初始化(声明并初始化,此时不能指定容量):
  • int[] scores = new int[]{60,80,100,50,60,70};
  • 【注意】虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素的具体内容,也可以自动推算出来长度。
  • 省略格式:int[] arr = {10, 20, 30}

在这里插入图片描述

3、动态初始化

  • 动态初始化(先声明再初始化,此时必须指定容量):
  • int[] arr = new int[3]; arr[0] = 1; arr[1] = 2; arr[2] = 3;
double arr[] = new double[6];
Scanner input = new Scanner(System.in);
for(int i = 0; i < arr.length; i++){
   
	System.out.println("请输入第" +(i+1) + "个元素的值");
	arr[i] = input.nextDouble();
}
System.out.println("******************");
for(int i = 0; i < arr.length; i++){
   
	System.out.println("第" + (i+1) + "个数组元素是:" + arr[i]);
}

数组在默认情况下是引用传递,赋的值是地址。

  • arr在栈中指向的是一块空间(堆)的地址
  • 数组中的元素存放在堆区

4、访问数组元素进行赋值

在这里插入图片描述
【注意】静态初始化其实也有默认值的过程,只不过系统自动马上将默认值替换成了大括号当中的具体数值。

5、数组空指针异常

数组必须进行new初始化才能使用其中的元素。如果只是赋值了一个null,没有进行new创建,那么将会发生空指针异常Null PointerException

  • 如:int[] array = null; System.out.print(array[0]);
//printArray({1,2,3});  没有这种语法。
//如果直接传递一个静态数组的话,语法必须这样写
printArray(new int[]{
   1,2,3});

在这里插入图片描述

6、二维数组

1、二维数组的声明方式:类型[][] 数组名 = new 类型[大小] [大小]int[] y[]int y[][]
2、int [][] arr = new int[3][]; 和C语言相反,C 语言中的二维数组必须指定列,行可以不确定。

  • 上述只是创建了一个有3个一维数组,但是每一个一维数组还没有开辟数据空间。还需要arr[i] = new int[i + 1];给每一个一维数组开空间。
  • 动态初始化,列数不确定。
//动态创建二维数组,每个一维数组的元素是不一样的。
public class TwoDimensionalArray{
   
    public static void main(String[] args){
   
        int[][] arr = new int[4][];
        for(int i = 0; i < arr.length; i++){
   
            //给每一个一维数组开辟空间 new
            //如果没有给一维数组new,那么arr[i]就是null
            arr[i] = new int[i + 1];
            //遍历一维数组,并给一维数组中的每个元素赋值
            for(int j = 0; j < arr[i].length; j++){
   
                arr[i][j] = i + 1;
            }
        }
        for(int i = 0; i < arr.length; i++){
   
            //输出arr的每个一维数组
            for(int j = 0; j < arr[i].length; j++){
   
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

6-1.杨辉三角问题

//杨辉三角
public class YangHui{
   
    public static void
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值