一维数组简介

 一、数组

* (一)概念:是一种容器,可以存放多个数组值

* (二)数组的特点:

* 1.数组是一种引用数组类型

* 2.数组当中的多个数据,类型必须统一

* 3.数组的长度在程序运行期间不可改变

* (三)数组的初始化,在内存中创建一个数组,并且向其中赋予一些默认值。

* 二种常见的初始化方式

* 1.动态初始化(指定长度)

* 2.静态初始化(指定内容)

*

* 3.动态初始化数据的格式

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

* 4.解析含义:

* (1)左侧数据类型,也就是数组当中保存的数据,全部是同意的什么类型

* (2)左侧的中括号,代表我是一个数组

* (3)左侧数组名称,给数组起一个名字

* (4)右侧的new,代表创建数组的动作

* (5)右侧的数据类型,必须和左边的数据类型保持一致

* (6)右侧中的括号的长度 也就是数组当中 到底可以存放多少个数据,是一个int类型的数组

*

* 动态初始化:(指定长度)在创建数组的时候 直接吃定数组当中的数组元素个数

* 静态初始化:(指定内容)在创建数组的时候,不指定数据的个数,而是直接将数组的内容进行指定。

*

*

* 静态初始化的基本格式

* 数据类型[] 数组名称=new 数组类型[]{元素1,元素2,.......}

* 静态初始化虽然没有定义长度 但是根据大括号里面元素的二聚体内容,可以自动推算出长度

*

* //创建一个动态数组 数组长度为10的int类型数组

    int[] arrayA = new int[10];

    //创建一个动态double类型的数组数组长度为10

    double[] doubleA=new double[10];

    //静态数组

    int[] arrayB=new int[]{5,10,15};

    //创建一个数组,用来存放字符串

    String[] stringB=new String[]{"hello","java","AB"};

 

* 使用静态初始化数组的时候格式可以省略一下

* 省略格式:数组类型[] 数组名称 ={数组元素};

* 注意事项:

* 1.静态初始化没有定义长度 但是能推算出长度

* 2.静态初始化可以拆分出二个步骤 动态初始化也可以(省略格式不允许)

*

* 访问数组元素的格式:数组名称[索引值]

* 【注意:索引值从0开始一直到数组长度-1为至】

* 静态初始化也有默认值 不过瞬间把大括号中的数值赋值

* 二个常见的问题:

* 1.如果访问数组元素的时候 索引编号不存在 那么将会发生数组索引越界异常

* ArrayIndexOutOfBoundsException

* 2.空指针异常

* 所有引用类型变量,都可以赋值一个为null值,但是代表什么也没有

* 数组必须其进行new初始化才能进行其中的元素。如果只是赋值null没有进行new创建

* 那么将会发生空指针异常NullPointerException

* 原因:忘了new

* 解决:补上new

* 如何获取数组长度 格式:数组名称.length 长度无法改变一旦创建成功

* 数组的遍历:fori for each

* 求出数组中的最值

* 数组元素的反转:[1,2,3,4] [4,3,2,1]

    * (1)实质上指的是对称位置上的元素交换

    * (2)现在表示对称位置的二个索引 int min=0; int max=array.length-1;

    * (3)如何交换二个变量的值 int temp=a; a=b; b=temp;

    * (4)什么时候停止交换 min==max

    * 当min>max 停止交换

    * 什么时候应该交换min<max

* 数组可以作为方法的参数数组存的地址

* 一个方法有多个参数可以 但是只能有一个返回值

* 如果希望一个方法中产生多个结果数据进行返回 怎么办???

* 解决方案:使用一个数组作为返回值类型即可

* * */

public class TestArray {

    public static void main(String[] args) {

        //静态初始化格式的省略格式

        int[] array = {5,10, 20, 30,45};

        System.out.println(array);//[I@49e4cb85

        //直接赋值

        System.out.println("数组array的第一个值:"+array[0]);//数组array的第一个值:10

 

        //求最大值

        int max=array[0];

        for (int i = 0; i < array.length-1; i++) {

            if(array[i]>max){

                max=array[i];

            }else{

                max=max;

            }

        }

        System.out.println("array数组中的最大值是:"+max);

 

        //array数组元素的反转

        for (int i = 0; i <array.length ; i++) {

            System.out.println(array[i]);

        }

        System.out.println("==================");

        /*初始化语句:int min=0,max=array.length-1;

        * 条件判断:min<max;

        * 步进表达式:min++,max--

        * 循环体:用第三个变量倒手

        * */

        for (int min1 = 0, max1=array.length-1;min1<max; min1++,max1--) {

            int temp=array[min1];

            array[min1]=array[max1];

            array[max1]=temp;

        }

        for (int i = 0; i <array.length-1 ; i++) {

            System.out.println(array[i]);

        }

        System.out.println("+++++++++++++++++++++++++++++");

 

        //可以将数组元素的某个元素交给变量

        int num=array[1];

        System.out.println(num);//20

 

        //动态初始化一个数组

        int[] arraya=new int[3];

        System.out.println(arraya[0]);//整数默认为0

        //将数据123赋值给arraya中的1号元素

        arraya[1]=123;

        for (int i = 0; i <arraya.length ; i++) {

            System.out.println(arraya[i]);

        }

        System.out.println(arraya[0]);

        System.out.println("数组长度是:"+arraya.length);

    }

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值