Java基础(16)-数组

Java基础(1)-Java的学习路线

Java基础(2)-Markdown语法

Java基础(3)-计算机基础

Java基础(4)-Java简介

Java基础(5)-win10系统卸载JDK

Java基础(6)-Win10系统下载安装配置JDK1.8

Java基础(7)-CentOS安装jdk1.8

Java基础(8)-Java程序运行机制

Java基础(9)-基础语法

Java基础(10)-JavaDoc命令行生成方式和Intellij IDEA 生成方式

Java基础(11)-输入Scanner的使用详解

Java基础(12)-流程控制之选择结构

Java基础(13)-流程控制之循环结构

Java基础(14)-流程控制之break和continue

Java基础(15)-方法详解

Java基础(16)-数组

Java基础(17)-CentOS安装配置maven

1、数组简介

  • 数组:数组时相同类型数据的有序集合
  • 数据描述的是相同类型的若干数据,按照一定的先后顺序依次排列组合而成
  • 数据的基本特点:
    • 数组的长度时固定的,数组一旦创建,它的长度就是不可以改变的
    • 数组中所有元素类型必须相同
    • 数组中的元素的类型可以是任何数据类型,包括基本数据类型和引用类型
    • 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量,数组本身就是对象,Java中对象是在队中的,数组对象本身是在堆中的
    • 数组下标如果越界,报ArrayIndexOutofBounds异常

2、数组创建

定义数组并赋值,如下:

package com.redrose2100.array;

public class Demo01 {
    public static void main(String[] args) {
        int[] nums;  // 推荐用法
        int nums2[]; // 是为了让CC++理解,不推荐使用
        nums=new int[10];
        for (int i = 0; i < nums.length; i++) {
            nums[i]=i+1;
        }
        for (int i = 0; i < nums.length; i++) {
            System.out.print(nums[i]+"\t");
        }
        System.out.println();
    }
}

执行结果如下:

1	2	3	4	5	6	7	8	9	10

3、内存分析

  • 堆:存放new的对象和数组,可以被所有的线程共享,不会存放别的对象引用
  • 栈:存放基本变量类型,包含基本类型的具体值,存放引用对象的变量,会存放这个引用在堆里面的具体地址
  • 方法去:可以被所有的线程共享,包含了所有的class和static变量

4、数组的使用

数组的遍历:

package com.redrose2100.array;

public class Demo02 {
    public static void main(String[] args) {
        int[] arrays={1,2,3,4,5};
        for(int elem:arrays)
        {
            System.out.print(elem+"\t");
        }
    }
}

执行结果如下:

1	2	3	4	5	

计算数组元素求和

package com.redrose2100.array;

public class Demo03 {
    public static void main(String[] args) {
        int nums[]={1,2,3,4,5,6,7,8,9,10};
        int sum=0;
        for (int i = 0; i < nums.length; i++) {
            sum+=nums[i];
        }
        System.out.println(sum);
    }
}

执行结果为:

55

数组反转

package com.redrose2100.array;

public class Demo03 {
    public static void main(String[] args) {
        int nums[]={1,2,3,4,5,6,7,8,9,10};
        printArray(nums);
        int nums3[]=revert(nums);
        printArray(nums3);
    }
    public static int[] revert(int[] arrays)
    {
        int[] results=new int[arrays.length];
        for(int i=0,j=results.length-1;i<arrays.length;i++,j--)
        {
            results[j]=arrays[i];
        }
        return results;

    }
    public static void printArray(int[] arrays)
    {
        for(int i=0;i<arrays.length;i++)
        {
            System.out.print(arrays[i]+"\t");
        }
        System.out.println();
    }
}

执行结果如下:

1	2	3	4	5	6	7	8	9	10	
10	9	8	7	6	5	4	3	2	1	

5、多维数组

多维数组的定义与使用

package com.redrose2100.array;

public class Demo04 {
    public static void main(String[] args) {
        int[][] arrays={{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7}};
        for(int i=0;i<arrays.length;i++)
        {
            for(int j=0;j<arrays[i].length;j++)
            {
                System.out.print(arrays[i][j]+"\t");
            }
            System.out.println();
        }
    }
}

执行结果如下:

1	2	3	4	
2	3	4	5	
3	4	5	6	
4	5	6	7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

redrose2100

您的鼓励是我最大的创作动力

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

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

打赏作者

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

抵扣说明:

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

余额充值