Java学习笔记之数组、排序和查找

目录

1 数组

1.1 数组的使用

1.1.1 动态初始化

1.1.2 静态初始化

1.2 数组使用注意事项和细节

1.3 数组赋值机制

1.4 数组反转

1.5 数组拷贝

1.6 数组添加/扩容

​ 

1.7 冒泡排序

2 二维数组

2.1 二维数组的使用

2.1.1 动态初始化

2.1.2 静态初始化

2.2 打印杨辉三角

2.3 二维数组使用细节和注意事项


1 数组

1.1 数组的使用

1.1.1 动态初始化

Ⅰ、 数据类型 数组名[] = new 数据类型[大小]

int a[] = new int[5];

Ⅱ、 数据类型 数组名[]; 数组名 = new 数组类型[大小];

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

1.1.2 静态初始化

数据类型 数组名[] = {元素值, 元素值, ...}

int arr[] = {1, 2, 3};
 

1.2 数组使用注意事项和细节

1)数组十多个相同类型数据的组合,实现对这些数据的统一管理

2)数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型,但不能混用。

3)数组创建后若没有赋值,则有默认值

int 0、short 0、byte 0、long 0、double 0.0、float 0、char \u0000、boolean false、String null

4)使用数组的步骤 ①声明数组并开辟空间、②给数组各元素赋值、③使用数组

5)数组的下标是从0开始的。

6)数组下标必须在指定范围内使用,否则报异常。

7)数组属于引用数据类型,数组型数据是对象。

1.3 数组赋值机制

1)基本类型赋值,这个值就是具体的数据,而且相互不影响。

int n1 = 2;
int n2 = n1;

2)数组在默认情况下是引用传递,赋的是地址

 

1.4 数组反转

public class Test2{
    public static void main(String[] args){
        int temp = 0;
        int[] arr = {11, 22, 33, 44, 55};
        for(int i = 0,j = arr.length - 1; i < arr.length / 2; i++,j--){
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        for(int i = 0; i < arr.length; i++){
            System.out.print(arr[i] + " ");
        }
    }
}

1.5 数组拷贝

public class Test2{
    public static void main(String[] args){
        int[] arr1 = {1, 2, 3};
        int[] arr2 = new int[arr1.length];
        for(int i = 0; i < arr1.length; i++){
            arr2[i] = arr1[i];
        }
        for(int i = 0; i < arr1.length; i++){
            System.out.print(arr2[i] + " ");
        }
    }
}

1.6 数组添加/扩容

public class Test2{
    public static void main(String[] args){
        int[] arr1 = {1, 2, 3};
        int[] arr2 = new int[arr1.length + 1];
        for(int i = 0; i < arr1.length; i++){
            arr2[i] = arr1[i];
        }
        arr2[arr1.length] = 4;
        arr1 = arr2;
        for(int i = 0; i < arr1.length; i++){
            System.out.print(arr2[i] + " ");
        }
    }
}

 

1.7 冒泡排序

public class Test2{
    public static void main(String[] args){
        int[] arr1 = {24, 69, 80, 57, 13};
        for(int i = 0; i < arr1.length - 1; i++){
            int temp = 0;
            for(int j = 0; j < arr1.length - i - 1; j++){
                if(arr1[j] > arr1[j + 1]){
                    temp = arr1[j];
                    arr1[j] = arr1[j + 1];
                    arr1[j + 1] = temp;
                }
            }
        }
        for(int i = 0; i < arr1.length; i++){
            System.out.print(arr1[i] + " ");
        }   
    }
}

2 二维数组

2.1 二维数组的使用

2.1.1 动态初始化

1)语法:类型 [] [] 数组名 = new 类型[大小] [大小]

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

 2)先声明:类型 数组名[] [];

再定义(开辟空间) 数组名 = new 类型[大小] [大小]

int[][] b;
b = new int[2][3];

3)动态初始化-列数不确定

int[][] c = new int[3][];
for(int i = 0; i < c.length; i++){
    c[i] = new int[i];
}

2.1.2 静态初始化

类型 数组名[] [] = {{值1, 值2, ...}, {值1, 值2, ...}, {值1, 值2, ...}};

int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 

2.2 打印杨辉三角

public class Test2{
    public static void main(String[] args){
        int n = 5;
        int[][] a = new int[n][];
        for(int i = 0; i < n; i++){
            a[i] = new int[i + 1];
            for(int j = 0; j < a[i].length; j++){
                if(j == 0 || j == a[i].length-1){
                    a[i][j] = 1;
                } else{
                    a[i][j] = a[i-1][j-1] + a[i-1][j];
                }
            }
        }
        for(int i = 0; i < a.length; i++){
            for(int j = 0; j < a[i].length; j++){
                System.out.print(a[i][j] + " ");
            }
            System.out.println();
        }
    }
}

2.3 二维数组使用细节和注意事项

1)声明方式

int[][] y 或者 int[] y[] 或者 int y[][]

2)二维数组实际是由多个一维数组组成,它的各个一维数组的长度可以相同,也可以不同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值