Java中数组的使用

数组

1. 数组概述

  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。

  • 数组本身就是对象,Java中对象是在堆中的,因此数组无论数组保存原始类型还是其他对象类型,数组对象本身就是在堆中的

  • 数组元素相当于对象的成员变量

2. 数组声明创建

1)声明数组首选方法: 变量类型[] 变量名 =

变量类型 变量名[] =

2)Java中使用new操作符来创建数组,语法:

dataType[] arrayRefVar = new dataType[arraySize]

3)初始化:

①静态初始化:创建+赋值

②动态初始化:包含默认初始化,初始全为0

③数组的默认初始化

int[] nums;//1. 声明数组
nums = new int[10];//2. 创建数组
//3. 给数组元素赋值
nums[0]=0;
nums[1]=1;
//遍历数组
for (int i = 0; i < nums.length; i++) {
    System.out.println(nums[i]);
}

//静态初始化:创建+赋值
int[] a ={1,2,3};
Man[] mans = {new Man(),new Man()};
​
//动态初始化:包含默认初始化
int[] b = new int[10];//全为0
b[0] = 10;

4)数组边界:

下标的合法区间:[0,length-1],如果越界就会报错。

ArrayIndexOutOfBoundsException(数组下标越界异常)

3. 数组使用

1)For-Each循环

arrays.for

//无下标
for (int array : arrays) {
    System.out.println(array);
}

2)数组作方法入参

public static void printArray(int[] arrays){
    for (int i = 0; i < arrays.length; i++) {
        System.out.println(arrays[i]);
    }
}

3)数组作返回值

public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        int[] reverse = reverse(arrays);//新建数组存放返回值
        printArray(reverse);
    }
public static int[] reverse(int[] arrays){
    int[] result = new int[arrays.length];
    for (int i = 0; i < arrays.length; i++) {
        result[i] = arrays[arrays.length - i - 1];
    }
    return result;
}

4. 多维数组

多维数组可以看成数组的数组

//4行2列
/*
    1,2 array[0]
    2,3 array[1]
    3,4 array[2]
    4,5 array[3]
 */
int[][] array = {{1,2},{2,3},{3,4},{4,5}};
printArray(array[0]);

5. Arrays类

1)给数组赋值:fill方法;

2)给数组排序:sort方法升序;

3)比较数组:通过equals方法比较数组中元素值是否相等;

4)查找数组元素:通过binarySearch方法对排序好的数组进行二分查找法操作;

5)Arrays类中有许多方法,需要时进行查找使用即可。

public static void main(String[] args) {
    int[] a = {1,2,33,456,3,555,1234};
    //打印数组元素Arrays.toString(a)
    System.out.println(Arrays.toString(a));
​
    //数组进行排序(升序):Arrays.sort(a)
    Arrays.sort(a);
    System.out.println(Arrays.toString(a));
    //数组填充
    Arrays.fill(a,0);
​
}

冒泡排序:

  • 比较数组中,两个相邻的元素,如果第一个数比第二个数大,则交换他们的位置;

  • 每一次比较,都会产生出一个最大/小的数字;

  • 下一轮则可以少一次排序;

  • 一次循环,直到结束。

    public static void main(String[] args) {
        int[] a = {1,2,55,77,11,345,67};
        int temp = 0;
        for (int i = 0; i < a.length - 1; i++) {
            boolean flag = false;
            for (int j = 0; j < a.length - i - 1; j++) {
                if (a[j]>a[j+1]){
                    temp = a[j+1];
                    a[j+1] = a[j];
                    a[j] = temp;
                    flag = true;
                }
            }
            if (flag == false){
                break;
            }
        }
        System.out.println(Arrays.toString(a));

6. 稀疏数组——数据结构

  • 当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。

  • 稀疏数组的处理方式:

  • 记录数组一共有几行几列,有多少个不同值;

  • 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而减小程序的规模。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值