Java基础部分学习:03、数组

1、用来储存同一种数据类型。

2、定义数组:

 double array[] = {1, 2.1, 12, 23.2, 16.1, 16};
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }

3、多种定义方式:

1、静态初始化:
int array[] = {1, 2, 4, 5, 6};
2、动态分配:
// 1、直接声明并分配空间
int array[] = new int[5];
// 2、先声明数组,再 new 分配空间
double score[];
score = new double[5];

4、练习题:使用数组储存26个字母:

  char words[] = new char[26];
        for (int i = 0; i < words.length; i++) {
            words[i] = (char) ('A' + i);  // ‘A’ + 1 为 int类型,words为char类型,需要强转
        }
        for (int i = 0; i < words.length; i++) {
            System.out.println(words[i] + "");
        }

5、注意事项:

1、数组创建后,如果没有赋值,有默认值。
int: 0; short: 0, byte:0,long:0
float:0.0;double:0.0;char:\u0000
boolean:false;String:null
short[] array = new short[3];
for(int i = 0; i < arr.length; i++) {
	System.out.println(array[i]);   // 0
}
2、数组赋值机制
1、基本数据类型赋值,赋值方式为值拷贝:
   n2的变化,不会影响n1的值:
int n1 = 10;
int n2 = n1;
n2 = 80;
System.out.println(n1);   // 10
System.out.println(n2);  // 20
2、数组在默认情况下是引用传递,赋的是地址,赋值方式为引用赋值
   是一个地址,arr2的变化会影响到arr1
int arr1[] = {1, 2, 3};
int arr2[] = arr1;
arr2[0] = 10;

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

基本数据类型是指拷贝,数组是地址拷贝,指向同一个空间

3、创建一个新的数组空间,大小和arr1一样: 使用new
   这样两个数组就互不影响

在这里插入图片描述


6、翻转数组


        int arrayList[] = {1, 2, 3, 4, 5, 6};
        // 1、逆序赋值方法:
        int arrayList2[] = new int[arrayList.length];
        for (int i = 0; i < arrayList.length; i++) {
            arrayList2[i] = arrayList[arrayList.length - i - 1];
        }
        for (int i = 0; i < arrayList2.length; i++) {
            System.out.print(arrayList2[i] + "");
        }

        ///2、找规律翻转:
        int temp = 0;
        int len = arrayList.length;
        for (int i = 0; i < len / 2 ; i++) {
            temp = arrayList[len - 1 - i];
            arrayList[len - 1 - i] = arrayList[i];
            arrayList[i] = temp;
        }

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

7、冒泡排序:

// 冒泡排序
        int array[] = {1, 23, 20, 110, 49, 25};
        int temp = 0;
        for (int j = 0; j < array.length - 1; j++) {  // 控制循环的次数
            for (int i = 0; i < array.length - 1 - j; i++) {   // 每次循环交换的次数
                if (array[i] > array[i + 1]) {
                    temp = array[i];
                    array[i] = array[i + 1];
                    array[i + 1] = temp;
                }
            }
        }
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + "\t");
        }

8、二维数组:

二维数组的每个元素是一个一维数组
1、二维数组的声明:
// 动态初始化1
int array[][] = new int[数组长度][每个一维数组的值];
int array[][] = new int[2][2];

// 动态初始化2
int arr[][];  // 先声明
arr = new int[2][3];  // 再开辟空间

在这里插入图片描述

// 静态初始化
int doubleArray[][] = {{1,2,3,4,5}, {1,2,3,4,5},{1,2,3,4,5}};
        for (int i = 0; i < doubleArray.length; i++) {
            for (int j = 0; j < doubleArray[i].length; j++) {
                System.out.print(doubleArray[i][j]);
            }
        }
2、当二维数组每个元素个数不确定时:
 // 一个二维数组有三个元素,每一个元素值个数不一致
        int[][] array = new int[3][];
        for (int i = 0; i < array.length; i++) {
            array[i] = new int[i + 1];  // 给每个一维数组开空间

            for (int j = 0; j < array[i].length; j++) {
                array[i][j] = i + 1;  // 给每个一维数组赋值
            }
        }

        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]);
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值