【Java学习笔记】一维数组

什么是数组

数组就是一组数据的集合,数组中的每个数据被称为元素,数组中可以存放任意类型的数据,但同一个数组存放的元素类型必须一致。

数组的定义

//x是声明的变量,类型为int[],10代表数组的长度,此数组长度为10
int[] x = new int[10];

内存图:在这里插入图片描述 数组中的每一个元素都有一个索引(也称角标),想要访问数组中的元素可以通过x[0],x[1],x[2]这样的方式来访问,注意数组中的最小索引是0,最大索引是"数组的长度-1"。数组中有一个获取数组度的属性length属性,可以通过"数组名.length"的方法来获取数组的长度,也就是元素的个数。

public class Example04 {
    public static void main(String[] args) {
        int[] x = new int[3];
        System.out.println(x[0]);
        System.out.println(x[1]);
        System.out.println(x[2]);
        System.out.println("数组的长度为:" + x.length);
   }
}

结果为:

从结果可以看出数组中的每个元素都是0,为什么会出现这种情况呢,这是因为数组创建成功后,系统会自动为数组中的元素赋予一个默认值,系统根据元素类型的不同,默认值不同

数据类型默认初始值
byte,short,int,long0
float,double0.0
char一个空字符,\u0000
booleanfalse
引用数据类型null,表示变量不引用任何对象

如果我们不想使用默认值,可以为元素赋值

public class Example05 {
    public static void main(String[] args) {
        int[] x = new int[3];
        x[0] = 10;//为第一个元素赋值
        x[1] = 20;//为第二个元素赋值
        x[2] = 30;//为第三个元素赋值
        System.out.println(x[0]);
        System.out.println(x[1]);
        System.out.println(x[2]);
        System.out.println("数组的长度为:" + x.length);
    }
  }

结果:
在这里插入图片描述

在定义数组时我们只指定了数组的长度,由系统自动为元素赋值的方式称为动态初始化
还有一种初始化数组时的方式叫做静态初始化,就是在定义数组的同时就是为数组每个元素赋值

public class Example06 {
    public static void main(String[] args) {
        //类型[] 数组名 = {元素,元素,元素,....}
        //静态初始化
        int[] x = {1,2,4};
        System.out.println(x[0]);
        System.out.println(x[1]);
        System.out.println(x[2]);
        System.out.println("数组的长度为:" + x.length);
   }
}

数组的常见操作

  • 数组的遍历:在操作数组的时候,经常需要依次访问数组中的每个元素,这种操作称作数组的遍历。

    public class Example07 {
        public static void main(String[] args) {
           int[] arr = {1,2,3,4,5,6};
           for (int i = 0;i < arr.length;i++){
               //通过索引访问元素
               System.out.println(arr[i]);
           }
        }
    }
    
  • 数组的最值,求数组的最大值

    public class Example08 {
        public static void main(String[] args) {
           int[] arr = {10,25,100,21,20};
           //默认数组第一个元素为最大值
           int max = arr[0];
           for (int i = 0;i < arr.length;i++){
               //比较arr[i]的值是否大于max
               if (arr[i] > max){
                   //条件成立将该元素重新赋值给max
                   max = arr[i];
               }
           }
            System.out.println("该数组的最大值为:" + max);
        }
    }
    
  • 数组的排序,冒泡排序

    public class Example09 {
        public static void main(String[] args) {
            int[] arr = {4, 1, 5, 7, 9};
            System.out.print("排序前:");
            printArray(arr);
            bubbleSort(arr);
            System.out.print("排序后:");
            printArray(arr);
        }
        //排序方法
        public static void bubbleSort(int[] arr){
            //外层循环控制进行多少轮比较
            for (int i = 0;i < arr.length - 1;i++){
                //内层循环用于控制每轮的比较次数
                for (int j = 0;j < arr.length - i - 1;j++){
                    if ( arr[j] > arr[j + 1]){//比较相邻元素
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
                System.out.print("第"+(i + 1)+"轮排序后:");
                printArray(arr);
            }
        }
        //打印方法
        public static void printArray(int[] arr){
            for (int i = 0; i < arr.length; i++){
                System.out.print(arr[i] + " ");
            }
            System.out.print("\n");
        }
    }
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值