Java基础(16)-数组
  TEZNKK3IfmPf 2023年11月14日 40 0

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
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   19天前   42   0   0 java
  TEZNKK3IfmPf   2024年05月31日   53   0   0 java
TEZNKK3IfmPf