Java基础--数组

1.数组
定义:数组是存储同一种数据类型多个元素的集合,也就是存储相同类型数据的容器。
数组既可以存储基本类型,也可以存储引用类型
格式:
A:数据类型[] 数组名;
int[] arr;
int类型的数组 arr
B:数据类型 数组名[];
int arr[];
int类型的 arr[]
初始化:
Java中的数组必须先初始化,然后才能使用。
所谓初始化
就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
a.动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
数据类型[] 数组名 = new 数据类型[数组长度];
b.静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
简化:数据类型[] 数组名 = {元素1,元素2,…};
获取数组元素:数组名[索引];
数组常见的两个异常
a. ArrayIndexOutOfBoundsException:数组索引越界异常
访问了不存在的索引
b. NullPointerException:空指针异常
引用已经不再指向堆内存,变量可能为null
数组的便历:输出数组中的每个元素
数组遍历标准格式:
for(int x=0; x<数组名.length; x++) {
System.out.println(数组名[x]);
}
2.二维数组
定义:元素为一维数组的数组。
动态初始化方式一(指定有多少个长度相同的一维数组):
数据类型[][] 变量名 = new 数据类型[m][n];
m表示有多少个一维数组
n表示一维数组中有多少个元素
动态初始化方式二(指定二维数组中有多少个一维数组,每一个一维数组的长度不固定):
数据类型[][] 变量名 = new 数据类型[m][];
注:m这个数据必须给出,后面的数据可以不给
二维数组的静态初始化
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化格式:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};

public class arrayarraydemo {
//  二维数组的遍历
    public static void main(String[] args) {
//      定义一个静态数组
        int [][]arr1={{1,2},{1,2,3},{21,4,5},{23,45,5}};
//      定义一个含有三个一维数组的二维数组,一维数组有4个元素
        int [][]arr=new int[3][4];
//      定义一个含有三个一维数组的数组
        int [][]arr2=new int[3][];
        showarray(arr1);
    }
    public static void showarray(int arr1[][]){
        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr1[i].length; j++) {
                System.out.print(arr1[i][j]+" ");
            }
        }
    }

}

3 .冒泡排序
基本规则:相邻两个比较,大的放后面第一次排序完毕最大的元素在索引最大处,依此类推。
代码实现

public class bubblesort {
    public static void main(String[] args) {    
        int []a={1,223,34,532,64,8,56};
        bubbleSort(a);
        printArray(a);
    }
    public static void bubbleSort(int[] a){
    //冒泡排序方法,外层循环控制大的轮回,内层循环进行相邻两个元素比较把大的在//后面第一次轮回结束最大的元素在最后一位。
        for (int i = 0; i < a.length-1; i++) {
            for (int j = 0; j < a.length-1-i; j++) {
                if(a[j]>a[j+1]){
                    int temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }               
            }
        }
    }
    //构造一个遍历数组的方法
    public static void printArray(int[] a){
        System.out.print("[");
        for (int i = 0; i < a.length; i++) {
            if(i==a.length-1){
                System.out.print(a[i]);
            }
            else{
                System.out.print(a[i]+",");
                 }
        }
        System.out.println("]");
    }
}

4.选择排序
基本规则:从0索引处开始依次与后面的比较,第一次结束后最小的位于0索引处,依次进行
代码实现

public class selectSort {
    public static void main(String[] args) {
        int []arr={1,24,5,34,6,367,434,378};
        printArray(arr);
    }
    //选择排序
    public static void selectSort(int []arr){
        //使用两个for循环嵌套,假设i为最小数,用它跟数组中其他元素比较,
        //如果有比他小的就交换位置
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0; j < arr.length; j++) {
                if(arr[i]>arr[j]){
                    int temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=arr[i];      
                }
            }
        }
    }
    //写一个遍历数组的方法
    public static void printArray(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if(i==arr.length-1){
                System.out.print(arr[i]);
            }else{System.out.print(arr[i]+",");
            ]
        }
        System.out.print("]");
    }
}

5.Arrays数组工具类
针对数组进行操作的工具类。提供了排序,转换等功能。

成员方法:
public static String toString(int[] a):把数组转成字符串
public static void sort(int[] a):对数组进行排序(有重载)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值