一维数组(八)

一、概念

存储同一种数据类型的多个元素的容器

二、格式
  1、数据类型[] 数据名;--int []a:定义一个int类型的数组a变量  2、数据类型 数据名[];--int a []:定义一个int类型的a数据变量  注意:效果可以认为是一样的,都是定义一个int数组,但是念法上有些小区别,推荐使用一种
三、数组初始化

1、概念:就是为数据开辟内存空间,并为每个数组元素赋予值

2、初始化方式

  动态初始化:指定长度,有系统给出初始化值:数据类型[]数组名=new数据类型[数组长度]        int []arr=new int[3]  静态初始化:给出初始化,由系统决定长度:数据类型[]数据名=new 数据类型[]{元素1,元素2...}-->数据类型[]数据名={元素1,元素2...}        int []arr=new int[]{1,2,3};--->简化后:int []arr={1,2,3};

3、获取数组中的元素

  A、数组名[索引]:索引就是每个元素的编号,从0开始,最大索引是数组长度-1

4、常见问题

  A、ArrayIndexOutOfBoundsException:数组索引越界异常-->访问了不存在的索引  B、NullPointerException:空指针异常-->数组已经不在指向堆内存了。而你还用数组名去访问元素
四、Java中的内存分配
五、练习

1、遍历数组

  int [] arr={11,22,33,44,55};  for(int i =0;i<arr.length;i  ){        System.out.println(arr[i]);  }

2、获取数据中的最大,小值

  @Testpublic void test1(){    int[] arr = {34,98,10,25,67};    System.out.println(getMax(arr));    System.out.println(getMin(arr));}public  static int getMin(int []arr){    int min=arr[0];    for (int i = 1; i < arr.length; i  ) {        if(min>arr[i]){            min=arr[i];        }    }    return min;}public static int getMax(int []arr){    int max =arr[0];    for (int i = 1; i <arr.length ; i  ) {        if(max<arr[i]){            max=arr[i];        }    }    return max;}

3、数组元素逆序

  @Testpublic void test1(){    int[] arr = {34,98,10,25,67};    reverse2(arr);    printArr(arr);    }public static void reverse2(int []arr){    for(int start=0,end=arr.length-1;start<=end;start  ,end--){        int temp=arr[start];        arr[start]=arr[end];        arr[end]=temp;    }}public static void reverse(int [] arr){    for (int i = 0; i <arr.length/2 ; i  ) {        int temp=arr[i];        arr[i]=arr[arr.length-1-i];        arr[arr.length-1-i]=temp;    }}public static void printArr(int []arr){    System.out.print("[");    for (int i = 0; i <arr.length ; i  ) {        if (i==arr.length-1){            System.out.println(arr[i] "]");        }else {            System.out.print(arr[i] ",");        }    }}

4、数组查表法(输入索引,查找对应数据)

   @Testpublic void test1(){    int[] arr = {34,98,10,25,67};    int index=1;    for(int i=0;i<arr.length;i  ){        if(arr[index]==arr[i]){            System.out.println(arr[index]);        }    }}

5、数组元素查找(查找指定元素第一次在数组中出现的索引)

  @Testpublic void test1(){    int[] arr = {34,98,10,25,67};    System.out.println(getIndex(arr,98));}public static int  getIndex(int[]arr,int value){    int index=-1;    for (int i = 0; i < arr.length; i  ) {        if(arr[i]==value){           index=i;           break;        }    }    return index;}

来源:https://www.icode9.com/content-4-786251.html

(0)

相关推荐

  • Java 查找算法

    Java 查找算法

  • java学习——24.一维数组

    之前的基本数据类型变量一次只能存储一个不可分解的简单数据,比如int i:一次只能存储一个整数.但是在实际的应用当中,可能会需要一次存储很多个整数,比如之前有一个例题,Fibonicci数列,之前做时 ...

  • 数组运算6(方向不同的一维数组的运算)

    今天来说数组运算的最后一种运算方式,方向不同的一维数组间的运算,也就是横向一维数组与纵向一维数组的运算. -01- 运算规则 如下图所示,是一维纵向数组与横向数组的连接运算.它们运算的结果是一个二维数 ...

  • 数组运算5(一维数组与二维数组的运算)

    之前我们说了一维数组与一维数组的运算,二维数组与二维数组的运算,今天来说一维数组与二维数组的运算. -01- 运算规则 1.行数或列数相同的一维数组与二维数组的运算 如下图所示,是一维区域与二维区域的 ...

  • 数组运算2(方向相同的一维数组的运算)

    今天来说方向相同的一维数组和一维数组的运算,也就是要么都是横向,要么都是纵向. -01- 运算规则 1.横向一维数组的运算 如下图所示,将A1:D1这个区域和A2:D2这个区域相加,结果输出到A4:D ...

  • 数组运算1(一维数组与单值的运算)

    昨天说了数组的基础知识,今天来说说数组的运算规则.像单值运算一样,数组也可以进行数学运算,比较运算和文本连接运算. -01- 运算规则 1.一维横向数组与单值的运算 如下图所示,在E1单元格中输入公式 ...

  • 【连载】(一维数组的简单应用)——乐创DIY C语言讲义——5.3节

    5.3 一维数组的简单应用 前面我们已经讲述了如何去定义一个一维数组,并且对所定义好的一维数组进行元素的读写和数组的遍历,本小节专门再来讲述一些数组的具体应用,使各位读者可以更好地去掌握一维数组. 首 ...

  • 【连载】(操作一维数组)——乐创DIY C语言讲义——5.2节

    5.2 一维数组的操作 一维数组在被定义好之后,就可以在程序中去使用它了,一般一个数组的使用有元素读取,元素赋值,元素遍历等操作.说到底无非就是数组定义及初始化,元素的读写,和数组的读写这几种方式.接 ...

  • 【连载】(初识一维数组)——乐创DIY C语言讲义——5.1节

    5.1初识一维数组 前面章节中,我们一起学习了一些简单的数据类型,它们包括浮点类型和整数类型两大类.通过使用关键词可以分别定义不同含义的单个变量.比如,小明这次考试的数学成绩是30分,那么我们可以定义 ...

  • Excel一维数组转二维数组的方法

    excel使用技巧大全在前面我们已经讲过,读取数组中的数据都是连续的.但有时,一些数据是不连续的.这时我们应该怎么办呢? 例如,许多格式相同的sheet要合并在一起.我们想看每一个sheet的数据.此 ...