Java学习之==>数组【array】

一、定义数组

/**
 * 一维数组定义
 *
 * 为数组插入元素
 */
public void case1() {
  // 声明
  int[] arr1;

  // 声明+初始化
  int[] arr2 = new int[3];
  // 为数组赋值
  arr2[0] = 1;
  arr2[1] = 2;
  arr2[2] = 3;

  // 声明+静态初始化,arr3和arr4一样
  int[] arr3 = new int[]{1, 2, 3, 4, 5};
  int[] arr4 = {1, 2, 3, 4, 5};
}

二、数组的遍历

/**
 * 一维数组的访问&遍历
 */
public void case2() {
  int[] arr = new int[]{1, 2, 3, 4, 5};

  // 普通for循环
  for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
  }

  // foreach,  增强for循环
  for (int num : arr) {
    System.out.println(num);
  }

  // 第三种方式,jdk1.8支持该种方式
  Arrays.stream(arr).forEach(System.out::println);
}

三、二维数组

/**
 * 二维数组的定义,初始化,访问,遍历
 */
public void case3() {
  
  // 声明
  int[][] arr1;

  // 声明+初始化
  int[][] arr2 = new int[3][2];
  arr2[0][0] = 1;
  arr2[0][1] = 1;

  // 声明+静态初始化,3*3
  int[][] arr3 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
}

/**
 * 二维数组的遍历
 */
public void case4() {

  int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
  // 第一种方式
  for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
      System.out.println(arr[i][j]);
    }
  }

  // 第二种方式
  for (int[] ints : arr) {
    for (int i : ints) {
      System.out.println(i);
    }
  }
}

四、总结

定义

  • 多个相同数据类型的数据按着顺序排列在一起组成的结构

属性

  • 名称: 存储数组在内存中的地址
  • 索引: 每个元素在数组中都有唯一的位置用于定位元素
  • 元素: 数组中的每一个数据,即为元素
  • 长度: 即数组中元素的个数

特点

  • 元素有序排列
  • 内存中空间连续
  • 属于引用数据类型

注意

  • 长度一旦指定即不可修改

五、练习

1、定义一个整型数组,找最大的元素

/**
 * 数组练习:定义一个整型数组,找最大的元素
 */
public void case1(){
  int[] arr = new int[10];
  for (int i=0;i<10;i++){
    arr[i] = i;
  }
  System.out.println(Arrays.toString(arr));
  int max = arr[0];
  for (int j=0;j<arr.length;j++){
    if (arr[j] > max){
      max = arr[j];
    }
  }
  System.out.println(max);
}

2、定义一个二维数组,求所有元素的和

/**
 * 数组练习:定义一个二维数组,求所有元素的加和
 */
public void case2(){
  // 声明和初始化一个二维数组
  int[][] arr = new int[5][3];
  // 生成一个二维数组
  for (int i=0;i<5;i++){
    for (int j=0;j<3;j++){
      arr[i][j] = i + j;
      System.out.print(arr[i][j]+" ");
    }
  }
  // 循环二维数组的每个元素然后相加
  int sum = 0;
  for (int i=0;i<arr.length;i++){
    for (int j=0;j<arr[i].length;j++){
      sum += arr[i][j];
    }
  }
  // 换行
  System.out.println();
  System.out.println(sum);
}

3、往数组指定位置插入/删除一个元素

/**
 * 往数组指定位置插入一个元素
  */
int[] insertarray(int[] arr, int index, int value){

  int[] newArr = new int[arr.length + 1];
  for (int i = 0; i < arr.length; i++) {
    newArr[i] = arr[i];
  }
  for (int i = newArr.length - 1; i > index; i--) {
    newArr[i] = newArr[i - 1];
  }
  newArr[index] = value;
  arr = newArr;

  return arr;
}

/**
 * 删除数组中指定位置的元素
 */
int[] deletearray(int[] arr, int index){

  int[] newArr = new int[arr.length - 1];
  for (int i = 0; i <= arr.length - 1; i++){
    if (i < index){
      newArr[i] = arr[i];
    }
    else if (i > index){
      newArr[i-1] = arr[i];
    }
  }
  return newArr;
}

猜你喜欢

转载自www.cnblogs.com/L-Test/p/11350781.html