美文网首页
java se 1.4数组

java se 1.4数组

作者: 起名字真难难难 | 来源:发表于2019-12-19 16:12 被阅读0次

一、数组的特点

(1)是一种引用类型
(2)多个数据类型的统一,数据集合
(3)数组在程序运行中不可以发生改变

1、数组的初始化:创建数组、赋予默认值

(1)静态数组初始化(指定长度)

格式:数据类型[] 数组名称=new 数据类型[数组长度];

double arrayA=new double[5];

(2)动态数组初始化(指定内容)

格式:数据类型[] 数组名称={...};
注意:(1)静态初始化数组没有指定格式,但可进行推算
(2)静态初始化格式可使用两个步骤:

int[] array1;
array1=;new int[]{....};

注:静态初始化里一旦使用省略格式,就不能拆分成两个步骤。
动态初始化也可拆分为两个步骤:

int[] array2;
array2 =new int[.];

所以,不指定内容用动态初始化格式,指定内容用静态初始化格式

二、访问元素、进行赋值

1、静态初始化

直接打印数组名称,得到的是数组相对应的地址值
访问数组元素格式 数组名称[索引值]
其中,索引值代表数组中元素的编号,从0开始,一直到数组元素的长度-1为止。

2、动态初始化

使用动态初始化格式的数组时,其中元素自动拥有一个默认值。
int -->0
double-->0.0
字符-->'\u0000'
布尔-->false
引用-->null
赋值-->array[1]=123;*
注:静态初始化也有默认值的过程,只不过系统自动马上将默认值替换成为了大括号中的数值。

三、数组索引越界异常

int[] array={1,2,3};
System.out.println(array[3]);

并不存在三号元素,发生异常。


异常关键字 编号错了

四、空指针异常

没有定义新数组

int[] array;
system.out.println(array [0]);

就会发生异常
解决:补上new,进行初始化定义

五、获取数组长度

数组在程序运行过程中,长度不可以更改

int[] array1=new int[3];
        int[] array2={1,3,2};
        int len1=array1.length;
        int len2=array2.length;
        System.out.println(len1);
        System.out.println(len2);

六、数组的遍历

打印数组中的每一个元素

int[] array={1,3,2};

可用for循环

int[] array={1,3,2};
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);

七、数组进行传参

数组可以作为方法的参数。当调用方法时,向方法小括号进行传参,传进去的是数组的地址值。
一个方法可有多个参数,但只能有一个返回值。
如果希望有多个结果,可使用一个数组作为返回值类型。

public static void main(String[] args) {
       int[] result = calculate(1, 2, 3);
       System.out.println("总和"+result[0]);
       System.out.println("平均数"+result[1]);

   }

   public static int[] calculate(int a, int b, int c) {
       int sum = a + b + c;
       int avg = sum / 3;
       int[] array1 = {sum, avg};
       return array1;
   }

数据类型:int[]
调用:int[] result=calculate(1, 2, 3);
任何数据类型都能作为方法的返回参数类型或返回值类型,数组作为方法的参数,传递进去的是数组的地址。数组作为方法的返回值,返回的也是数组的地址。

八、举例

1、找最大元素

public static void main(String[] args) {
       int[] array={1,2,3,4,5};
       int max=array[0];
       for(int i=1;i<array.length;i++){
           if(array[i-1]<array[i]){
              max=array[i];
           }
       }
       System.out.println("数组中的最大值为"+max);
   }

2、反转


反转图例
public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};
        for(int min=0,max=array.length-1;min<max;min++,max--){
            int temp=array[min];
            array[min]=array[max];
            array[max]=temp;
        }
        for (int i=0;i<array.length;i++){
            System.out.println(array[i]);
        }
public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};
        int length = array.length;
        for (int i = 0; i < length; i++) {
        int temp =array[i];
        array[i] = array[length-1];
        array[length-1] = temp;
        length--;
        if(i>length) break;

        }
        for (int i=0;i<array.length;i++){
            System.out.println(array[i]);
        }
    }

相关文章

网友评论

      本文标题:java se 1.4数组

      本文链接:https://www.haomeiwen.com/subject/iidunctx.html