数组

  • 前言
  • 1、数组的创建
  • 1.1 、动态初始化创建数组
  • 1.2 、静态初始化创建数组
  • 2、数组的遍历
  • 2.1、数组的遍历(1)
  • 2.2、数组的遍历(2)
  • 3、数组的练习
  • 4、存储引用变量
  • 5、多维数组



前言

数组的定义:在内存中一段连续的内存空间,存储相同类型的容器,定义后无法改变长度

语法: type name [] = new type [10] ;

type 数据类型(引用类型和基本类型);
name:标识符
[ ] :代表为一个数组

new关键字创建数组;
[10] :创建长度为10的数组

数组中元素的存储方式:

按照下标的方式存储(从0开始)到length-1结束(超出下标后会出现异常: ArrayIndexOutOfBoundsException )


案例可供参考

1、数组的创建

1.1 、动态初始化创建数组

创建了长度为10 ,类型为int类型的数组

int arr[] = new int[10];
  //动态初始化
   arr[0] = 1;
   arr[1] = 2;
   arr[2] = 3;
   arr[3] = 4;
   arr[4] = 5;
   arr[5] = 6;
   arr[6] = 7;
   arr[7] = 8;
   arr[8] = 9;
   arr[9] = 10;

1.2 、静态初始化创建数组

在创建数组时使用花括号直接为其赋值,可以省略new int [ ] (利用JAVA的值推断机制)

//创建和初始化一起执行(静态初始化);
		int arr3[] = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//可以省略new int
		int arr2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

2、数组的遍历

2.1、数组的遍历(1)

可以使用for循环进行遍历,也可使用Arrays工具类进行遍历
数组范围为:0 ~ length-1

代码如下:

//使用for循环遍历
		int arr2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 		for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i] + ",");
        }

2.2、数组的遍历(2)

使用foreach进行遍历,代码如下:

int arr2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
	    for (int num : arr2) {
            System.out.print(num + ",");
        }

3、数组的练习

求数组的和与平均值

int arr2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
		int sum = 0;
        for (int i = 0; i < arr2.length; i++) {
            sum += arr2[i];
        }
        int average = sum / (arr2.length );
        System.out.println("数组arr2的平均值为:" + average + "总和为:" + sum);

生成随机数赋值并使用冒泡算法进行排序

//1.生成随机数并赋值
        for (int i = 0; i < arr3.length; i++) {
            arr3[i] = (int) (Math.random() * 100) + 1;
        }
        System.out.println("未排序前的数组为:" + Arrays.toString(arr3));

        //2.使用冒泡算法对数组进行排序
        /*
            算法原理:
            判断数组中前一个值是否大于后面的值,如果大于则进行位置交换,直到循环完成所有值进行判断
         */
        for (int i = 0; i < arr3.length; i++) {
            for (int j = 0; j < arr3.length - i - 1; j++) {
                if (arr3[j] > arr3[j + 1]) {
                    //保存了数组中j+1的值
                    int temp = arr3[j + 1];
                    //位置交换
                    arr3[j + 1] = arr3[j];
                    arr3[j] = temp;
                }
            }
        }
        //遍历
		System.out.println("排序后的数组为:" + Arrays.toString(arr3));

4、存储引用变量

代码如下:

class Person{
    int age;
    String name;
    Person(int age,String name){
        this.age=age;
        this.name=name;
    }

   public void showInfo(){
       System.out.println("姓名为:"+name+",年龄为:"+age);
	
   }
   public static void main(String [] args){
	    Person p1 = new Person(18,"张三");
        Person p2 = new Person(19,"李四");
        Person p3 = new Person(20,"王五");

        // 引用对象的地址存入数组中
        Person [] people = new Person[3];
        people[0]=p1;
        people[1]=p2;
        people[2]=p3;
         //遍历
        for (int i = 0 ; i < people.length ; i++){
            people[i].showInfo();
        }

	}
}

5、多维数组

  • 多维数组:相当于数组的嵌套
    语法
    int [][] arrs = new int [4][5]; 相当于创建了一个4行5列的数组;
    int [][] arrs2 = new int [4][];相当于创建了一个4行的数组,没有声明每个数组的长度(长度可以不相同)
    代码如下:
//创建4行5列的数组
        int[][] arrs = new int[4][5];
        //赋值
        for (int i = 0 ,num=10; i < arrs.length ; i++){
            for (int j = 0 ; j < arrs[i].length; j++){
                arrs[i][j]=num;
                num++;
            }
        }
        //遍历
        for (int i = 0 ; i < arrs.length ; i++){
            for (int j = 0; j < arrs[i].length ; j++){
                System.out.print(arrs[i][j]+" ");
            }
            System.out.println();

        }
        /*
         输出结果为下
                10 11 12 13 14
                15 16 17 18 19
                20 21 22 23 24
                25 26 27 28 29
         */

本文结束!感谢您的光临!!!,
希望我们共同进步~共同成长 。
创作不易,来个三连可好!!