Java 基本语法---Java数组


0. 概述

数组:相同类型的数据 按照顺序 组成的一种 引用数据类型 。

数据类型:基本数据类型 + 引用数据类型;

引用数据类型:类 + 接口 + 数组 ;

一维数组:声明,创建,初始化,元素的引用,长度


1. 数组声明

变量声明的语法格式: 变量类型 变量名;

数组声明的语法格式:数据类型 [ ] 数组名;(数据类型 数组名[ ])

int[] myIntArray;  //首选方法

(int myIntArray[];) //来源于C/C++,效果相同,但不是首选方法

String[] strArray;

2. 数组创建

语法格式一 先声明后创建

数据类型[] 数组名;

数组名 = new 数据类型[ 数组长度 ];

int[] array;

array = new int[10];

//创建一个长度为 10 的整型数组array; 

语法格式二 声明的同时进行创建数组

数据类型 [] 数组名 =  new 数据类型 [ 数组长度 ];

dataType[] arrayRefVar = new dataType[arraySize];
// 1.使用 dataType[arraySize] 创建了一个数组;
// 2.把新创建的数组的引用赋值给了变量 arrayRefVar。
int[] arr = new int[10];    //创建一个长度为10的整型数组arr

//注意:数组的长度必须给定

3. 数组的初始化

声明数组的同时给数组赋值,叫做数组的初始化;

int[] arr = {1,2,3,4,5,6,7,8,9,10};

// 数组的长度就是初始化数组时所给数组元素的个数。

4. 数组元素的引用

数组元素的访问是通过索引访问的。

语法格式: 数组名[ 下标 ];

注意:下标从0开始(数组索引从0开始,所以索引值从0到array.length - 1);


5. 数组的长度

int[] arr = {0,1,2,3,4,5,6,7,8,9};

//属性 length 表示数组的长度,例如:arr.length;

6. 案例

6.1 案例1:一维数组的应用

int 数组创建时数组元素默认值为0;

double数组创建时数组元素默认为0.0;

char 数组创建时数组元素默认为 ;

String 数组创建时数组元素默认为 null;

public class ArrayTest {
    public static void main(String[] args) {
        //声明一个整型数组
        int[] intArray;
        //声明一个字符串类型的数组
        String strArray[];
        //创建数组
        intArray = new int[5];
        strArray = new String[10];
        //声明数组的同时进行创建数组
        double[] doubleArray = new double[4];
        //初始化数组
        char[] chArray = {'a','b','c','d'};
        char[] ch1Array = new char[5];
        System.out.println("ch1Array 数组的长度为:" + ch1Array.length);
        System.out.println("ch1Array 数组中的第2个元素为:" + ch1Array[3]);
        System.out.println("chArray 数组的长度为:" + chArray.length);
        System.out.println("chArray 数组中的第2个元素为:" + chArray[1]);
        System.out.println("intArray 数组的长度为:" + intArray.length);
        System.out.println("intArray 数组中的第二个元素为:" + intArray[1]);
        System.out.println("strArray 数组的长度为:" + strArray.length);
        System.out.println("strArray 数组中的第5个元素为:" + strArray[4]);
        System.out.println("doubleArray 数组的长度为:" + doubleArray.length);
        System.out.println("doubleArray 数组中的第4个元素为:" + doubleArray[3]);
        System.out.println();

        //循环为整型数组赋值
        for(int i = 0;i < 5;i++)
        {
            intArray[i] = i + 2;
        }
        //循环输出整型数组中的元素
        System.out.println("整型数组intArray 中的元素值分别为:");

        //数组下标越界(数组下标超出范围)Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
        //  at com.ryanjie.ArrayTest.main(ArrayTest.java:51)
//        for(int i= 0;i < 6;i++)
//        {
//            System.out.print(intArray[i] + "    ");
//        }
//        System.out.println();
        for(int i = 0;i < 5;i++)
        {
            System.out.print(intArray[i] + "    ");
        }
        System.out.println();
    }

}

Output:
    ch1Array 数组的长度为:5
    ch1Array 数组中的第2个元素为:
    chArray 数组的长度为:4
    chArray 数组中的第2个元素为:b
    intArray 数组的长度为:5
    intArray 数组中的第二个元素为:0
    strArray 数组的长度为:10
    strArray 数组中的第5个元素为:null
    doubleArray 数组的长度为:4
    doubleArray 数组中的第4个元素为:0.0

    整型数组intArray 中的元素值分别为:
    2    3    4    5    6    

6.2 案例2:求数组元素的累加和

public class ArraysSum {
    public static void main(String[] args) {
        //求整型数组的累加和
        //定义整型数组
        int[] intArray = new int[5];

        //从键盘开始接收数据,为元素进行赋值
        Scanner sc = new Scanner(System.in);
        for(int i = 0;i < intArray.length;i++)
        {
            System.out.println("请输入第 " + (i + 1) + "个元素的值:");
            intArray[i] = sc.nextInt();
        }

        //输出intArray 数组中的元素
        System.out.println("数组中的元素分别为:");
        for(int i = 0;i < intArray.length; i++ )
        {
            System.out.print(intArray[i] + "  ");
        }
        System.out.println();

        //输出intArray数组中的元素的和
        int sum = 0;
        for(int i= 0; i < intArray.length;i++)
        {
            sum += intArray[i];
        }
        System.out.println("intArray数组的元素和为:" + sum);
    }
}

Output:
    请输入第 1个元素的值:
    100
    请输入第 2个元素的值:
    100
    请输入第 3个元素的值:
    50
    请输入第 4个元素的值:
    50
    请输入第 5个元素的值:
    150
    数组中的元素分别为:
    100  100  50  50  150
    intArray数组的元素和为:450

6.3 案例3:求数组元素的最大值

public class MaxElement {
    public static void main(String[] args) {
        //求数组中的最大值

        //定义整型数组
        //int[] intArray = {34,23,78,56,31,66};
        int[] intArray = new int[6];

        //从键盘读取数组元素值
        Scanner sc = new Scanner(System.in);
        for(int i = 0;i < intArray.length;i++ )
        {
            System.out.println("请输入第 " + (i+1) + "个元素的值:");
            intArray[i] = sc.nextInt();
        }

        //输出intArray数组中的元素
        System.out.println("intArray 数组中的元素分别为:");
        for(int i = 0;i < intArray.length;i++)
        {
            System.out.print(intArray[i] + "  ");
        }
        System.out.println();

        int max = intArray[0];
        for(int i = 1;i < intArray.length;i++)
        {
            if(max < intArray[i])
            {
                max = intArray[i];
            }
        }
        System.out.println("intArray 数组元素的最大值为:" + max);
    }
}

Output:
    请输入第 1个元素的值:
    34
    请输入第 2个元素的值:
    23
    请输入第 3个元素的值:
    78
    请输入第 4个元素的值:
    56
    请输入第 5个元素的值:
    31
    请输入第 6个元素的值:
    66
    intArray 数组中的元素分别为:
    34  23  78  56  31  66
    intArray 数组元素的最大值为:78

7. foreach 循环

foreach 循环又称为增强型循环,它能在不使用下标的情况下遍历数组。

int[] arr = {1,2,3,4,5,6};
for(int n:arr)
    System.out.print(n + "  ");
//每次把数组中的元素存放到n中,输出。循环遍历一遍就终止;
public class Test {
    public static void main(String[] args) {
        //定义整型数组
        //int[] intArray = {34,23,78,56,31,66};
        int[] intArray = new int[6];

        //从键盘读取数组元素值
        Scanner sc = new Scanner(System.in);
        for(int i = 0;i < intArray.length;i++ )
        {
            System.out.println("请输入第 " + (i+1) + "个元素的值:");
            intArray[i] = sc.nextInt();
        }

        //foreach循环
        for(int n:intArray)
        {
            System.out.print(n + "    ");
        }
        System.out.println();
    }
}

8. 数组作为函数的参数

数组作为参数传递给方法。

调用printfDoubleArray方法打印doubleArray数组:

public static void printfDoubleArray(double[] doubleArray) {
    for (double element: doubleArray )
    {
        System.out.println(doubleArray[i] + "   ");
    }
}

//调用printfDoubleArray方法打印doubleArray数组
printfDoubleArray(new double[] {3.14,6.66,8,88,3.59,7.84});

9. 数组作为函数的返回值

数组可以作为函数的返回值。

将list数组中的元素值赋值给result数组:

public atstic int[] reverse(int[] list){
    //声明 result 数组 并创建 result 数组
    int[] result = new int[list.length];

    for (int i = 0, j = result.length - 1; i < list.length; i++, j--)
    {
        result[j] = list[i];
    }
    return result;
}

10. 冒泡排序 BubbleSort

public class BubbleSort {
    public static void main(String[] args) {
        //冒泡排序BubbleSort
        int[] intArray = {34,23,78,56,31,66};
        System.out.println("排序前的数组元素分别为:");
        for(int element:intArray)
        {
            System.out.print(element + "    ");
        }
        System.out.println();

        //BubbleSort
        int temp;
        for (int i = 0; i < intArray.length; i++)
        {
            for (int j = 0; j < intArray.length-i-1; j++)
            {
                if(intArray[j] > intArray[j+1])
                {
                    temp = intArray[j];
                    intArray[j] = intArray[j+1];
                    intArray[j+1] = temp;
                }
            }
        }

        //输出排序后的数组
        System.out.println("排序后的数组元素分别为:");
        for(int element:intArray)
        {
            System.out.print(element + "    ");
        }
        System.out.println();
    }
}

OutPut:
    排序前的数组元素分别为:
    34    23    78    56    31    66
    排序后的数组元素分别为:
    23    31    34    56    66    78  

Java 基本语法---Java数组的更多相关文章

  1. Java基础语法(7)-数组

    title: Java基础语法(7)-数组 blog: CSDN data: Java学习路线及视频 1.数组的概述 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并 ...

  2. Java基础语法(8)-数组中的常见排序算法

    title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...

  3. Java 基本语法---Java方法

    Java 基本语法---Java方法 0.概述 方法:就是用来解决一类问题的代码的有序组合,是一个功能模块: 在方法部分,只使用对象名词调用方法: Scanner sc = new Scanner(S ...

  4. Java 基本语法---Java运算符

    Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...

  5. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  6. JavaSE入门学习9:Java基础语法之数组

    一数组的定义 数组能够理解为是一个巨大的"盒子",里面能够按顺序存放多个类型同样的数据.比方能够定义int型的数组 scores存储4名学生的成绩. watermark/2/tex ...

  7. Java基础语法:数组

    一.简介 描述: 数组是相同类型数据的有序集合. 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 基本特点: 数组的长度是确定的.数组一旦被创建,它的大小就是不可以改变的. ...

  8. Java基础语法(三)---数组

    一.概念         同一种类型数据的集合.简单的来说就是一容器,用来装东西的. 使用数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素. 二.一维数组的格式 格式1:元素类型 [ ...

  9. Java基础语法<六> 数组 Arrays

    笔记整理 来源于<Java核心技术卷 I > <Java编程思想>   允许数组长度为0 new element[0] 数组长度为0与null不同   1. 数组拷贝 允许将一 ...

随机推荐

  1. php多进程pcntl学习(一)

    pcntl在windows下无法使用,linux编译php时加上参数--enable-pcntl 即可.第一次使用pcntl模块,遇到了一些坑也慢慢填上了,这里简单记录下. 1. 子进程之间变量无法共 ...

  2. Delphi窗体部分属性

    Align属性:控制窗体显示时的对齐方式(注:是相对于父窗体的对齐方式.如果该窗体是主窗体则没有父窗体)(与anchor不同在于,anchor定义的对齐是固定到边界的距离) 默认值为alNone.其他 ...

  3. Java学习之静态代码块

    一.static(在方法区有一块固定的存储区域,由于优先于对象存在,所以可以被所有对象共享) 在定义方法的时候你写main方法的类加static, 写普通类的写方法的时候就不要加static 1.st ...

  4. 等价类计数(Polya定理/Burnside引理)学习笔记

    参考:刘汝佳<算法竞赛入门经典训练指南> 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车. 置换:排列的一一映射.置换乘法相当于函数复合.满足结合律,不满足交 ...

  5. 【刷题】LOJ 6223 「网络流 24 题」汽车加油行驶问题

    题目描述 给定一个 \(\text{N}\times \text{N}\) 的方形网格,设其左上角为起点◎,坐标为 \(\text{(1,1)}\) ,\(\text{X}\) 轴向右为正, \(\t ...

  6. 【题解】 bzoj2460: [BeiJing2011]元素 (线性基)

    bzoj2460,戳我戳我 Solution: 线性基板子,没啥好说的,注意long long 就好了 Code: //It is coded by Ning_Mew on 5.29 #include ...

  7. centos 7使用docker安装lnmp和redis环境

    #================Docker基础操作========================== #启动docker服务service docker start#搜索可用docker镜像#h ...

  8. 解题:九省联考2018 秘密袭击CoaT

    题面 按照*Miracle*的话来说,网上又多了一篇n^3暴力的题解 可能是因为很多猫题虽然很好,但是写正解性价比比较低? 直接做不可做,转化为统计贡献:$O(n)$枚举每个权值,直接统计第k大大于等 ...

  9. C++ new动态数组初始化

    strlen函数是不包括‘\0’的长度的,sizeof计算的结果才包括'\0'的长度: C++ new动态数组初始化void testnew( const char* str ) { if (!str ...

  10. Angular.js浅谈

    至今博主对于MVVM框架比较了解的就只能算有Angular了,首先给大家明确一个概念,Angular1.x才能叫Angular.js,而Angular2.4.5都直接叫Angular了,因为从2开始已 ...