java数组

数组是一种用于存储多个相同类型数据的存储模型 

通常数组的定义格式有两种:

第一种:数据类型[] 变量名   例如 int [ ] arr (一般使用这一种)

第二种:数据类型   变量名[ ]  例如  int      arr[ ]

数组初始化

数组的初始化分为静态初始化和动态初始化。

静态初始化就是只指定内容

其格式为:数据类型[ ] 变量名 =new 变量名[ ] {值1,值2,值3.....};

其简化格式为:数据类型[ ] 变量名 {值1,值2,值3.....};

int[] arr = {1,2,3,4,5,6};//静态初始化定义数组 

动态初始化是指定长度

其格式为:数据类型[ ] 变量名 = new 数据类型[长度];

数据类型就是表示该数组中元素的数据类型,[]表示是一个数组,变量名就是数组名,new是为数组申请内存空间,长度就是数组中元素的个数。

int[] a = new int[6];//动态初始化定义数组

数组元素的访问

1.直接通过数组名进行访问,如下所示

public class ArrayDemo1 //类名
{   //java application程序主入口函数,带命令行参数
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6};//静态初始化定义数组
        System.out.println(arr);//输出数组名得到数组内存空间的地址值--->[I@1b6d3586
    }
}

2.通过索引对数组内部保存的元素进行访问,如下所示:

public class ArrayDemo1 //类名
{   //java application程序主入口函数,带命令行参数
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6};//静态初始化定义数组
        System.out.println(arr[2]);//输出数组中索引为2的元素--->3
    }
}

索引是数组中数据的编号,是从0开始的,需要注意的是索引最大为数组长度-1,如果超过了就会造成索引越界,从而报错。

给数组元素赋值,如下所示:

public class ArrayDemo2 //类名
{   //java application程序主入口函数,带命令行参数
    public static void main(String[] args) {
        int[] arr = new int[4];//动态初始化定义数组

        arr[0]=2;//给数组索引为0的元素赋值
        arr[1]=6;//给数组索引为1的元素赋值
        arr[2]=9;//给数组索引为2的元素赋值
        arr[3]=5;//给数组索引为3的元素赋值

        System.out.println(arr[0]);//输出数组索引为0的元素--->2
        System.out.println(arr[1]);//输出数组索引为1的元素--->6
        System.out.println(arr[2]);//输出数组索引为2的元素--->9
        System.out.println(arr[3]);//输出数组索引为3的元素--->5
    }
}

使用for循环对上面程序的数组元素进行遍历,如下所示:

public class ArrayDemo2 //类名
{   //java application程序主入口函数,带命令行参数
    public static void main(String[] args) {
        int[] arr = new int[4];//动态初始化定义数组

        arr[0]=2;//给数组索引为0的元素赋值
        arr[1]=6;//给数组索引为1的元素赋值
        arr[2]=9;//给数组索引为2的元素赋值
        arr[3]=5;//给数组索引为3的元素赋值

        for(int i=0;i<arr.length;i++)//arr.length是数组的长度
        {
            System.out.println("arr["+i+"]的值为"+arr[i]);//每次循环输出一个数组元素
        }
    }
}

数组冒泡排序

如下所示,将数组中的10个元素先按照从小到大的顺序排序,然后输出。

//把数组中已知得10个数组由小到大排序后输出
public class Challenge2 {
    public static void main(String[] args) {
        int[] arr = {5, 3, 9, 10, 4, 15, 18, 7, 2, 1};//静态初始化定义数组
        int p;//定义遍历p,用于存放两数组元素中较大的元素
        for (int i = 0; i < arr.length; i++)
            /*循环完一次之后最小的那个数会放到第一个位置,然后下一轮循环后,
            第二小的元素会到第二个位置,依此类推,最后整个for循环执行完毕,数组中的元素就排好了序。
             */
        {
            for (int j = arr.length - 1; j > i; j--)
                /*
                从最后一个数组元素开始与前一个进行比较,循环一次,较小的那个元素就到倒数第二个位置,
                然后再进行循环,整个for循环执行完毕,最小的元素会到第一个位置
                 */
            {
                if (arr[j] < arr[j - 1]) //如果前一位数比后一位数大,就要把两个数的位置调换
                {
                    p = arr[j - 1];//将前一位数的值赋值给p
                    arr[j - 1] = arr[j];//将后一位数的值赋给前一位
                    arr[j] = p;//将p的值也就是前一位数的值赋给后一位
                }
            }
        }
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);//输出数组元素
        }
    }
}

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值