Java基础--数组

本文详细介绍了Java中的数组,包括定义、声明与创建、内存分析、初始化方式以及使用技巧。讲解了如何通过索引访问元素,获取数组长度,以及如何进行数组的静态和动态初始化。还展示了数组的基本和进阶用法,如遍历、计算元素总和和查找最大值。此外,提到了二维数组的概念以及Arrays类的工具方法。最后,通过示例展示了冒泡排序的实现过程。
摘要由CSDN通过智能技术生成

一.数组(array)的概述

1.数组的定义

  • 相同数据类型的有序集合
  • 数组描述的是相同类型的若干个数据,按照一定的先后顺序排列组合而成;
  • 这其中的每个数据成为数组的元素,可以通过下标来访问他们。

2.数组的声明和创建

  • 数组变量必须要先声明创建才能在程序中使用;

    //声明数组变量的语法
    dataType[] arrayRefVar;//最常用的声明数组变量的语法
    或者
    dataType arrayRefVar[];
    
  • Java中使用new操作符来创建数组;

    dataType[] arrayRefVar = new dataType[arraySize];
    
    int[] nums = new int[10];
    
  • 数组中各元素通过索引访问,索引从0开始;

    nums[0];
    nums[1];
    nums[3];
    ...
    nums[9]
    
  • 获取数组长度(即数组中元素个数)

    array.length
    

二.内存分析&三种初始化

1.内存分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q7FcfuC8-1636898810935)(C:/Users/HP/AppData/Roaming/Typora/typora-user-images/image-20211113100458794.png)]

2.三种初始化

1.静态初始化(创建+赋值)

int[] a = {1,2,3};
Man[] mans = {new Man(1,1),new Man(1,2)};

2.动态初始化

int[] a = new int[2];
a[0] = 1;
a[1] = 2;    

3.数组的默认初始化

​ 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

三.数组的使用

1.数组的基本用法

//打印全部的数组元素

//计算所有的元素的和

//查找最大的元素

package com.mr.array;

public class AaaryDemo1 {
    public static void main(String[] args){
        int[] arrays = {1,2,3,4,5};
        //打印全部的数组元素
        for(int i= 0; i < arrays.length; i++){
            System.out.println(arrays[i]);
        }
        //计算所有元素的总和
        int sum = 0;
        for(int i = 0; i < arrays.length; i++){
            sum += arrays[i];
        }
        System.out.println("sum = "+sum);
        //查找最大的元素
        int max = arrays[0];
        for(int i = 1; i < arrays.length; i++){
            if(arrays[i] > max){
                max = arrays[i];
            }
        }
        System.out.println("max = "+max);
    }
}

2.数组的进阶用法

// 增强for循环遍历数组元素

public class ArrayDemo2 {
    public static void main(String[] args) {
        int [] array = {1,2,3,4,5};

        //JDk5新特性,增强for循环,没有数组下标
        for (int i : array) {
            System.out.println(i);
        }
    }
}

// 反转数组

//反转数组
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];

        //反转的操作
        for (int i = 0,j = result.length-1; i < arrays.length; i++,j--){
            result[j] = arrays[i];
        }
        return result;
    }

四.二维数组

二维数组就是一个特殊的一维数组,其每个元素都是一个一维数组

int a[][] = new int[2][5];

以上二维数组a可以看成一个二行五列的数组。

五.Arrays类

数组的工具类java.util.Arrays

由于数组对象本身并没有方法供我们调用,但API提供了一个工具类Arrays供我们使用,可以对数据对象进行一些基本的操作

具体可查看[JDK帮助文档]

六.冒泡排序

  • 比较数组中两个相邻的元素,如果第一个数大于第二个数,我们就交换他们的位置
  • 每一次比较都会产生出一个最大,或者最小的数字
  • 下一轮则可以少一次排序
  • 以此循环,直到结束
package com.mr.array;

import java.util.Arrays;

public class ArrayDemo3 {
    public static void main(String[] args) {
        int[] a = {1,2,4,5,7,3,2,43,65,32};
        int[] sort = sort(a);
        System.out.println(Arrays.toString(sort));
    }
    public static int[] sort(int[] array){
        int temp = 0;
        //外层循环,判断要走多少次
        for(int i = 0; i < array.length-1; i++){
            //内层循环,比较两数大小,若第一个数大于第二个数则交换位置
            for(int j = 0; j < array.length-1-i; j++){
                if(array[j+1]<array[j]){
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
        return array;
    }
}
  

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值