数组的初识

数据结构:计算机存储、组织数据得方式
数组
数组:
声明规则:数组类型 数组名[]
                  数组类型[] 数组名
        静态声明:
int[] arr1 = {1,2,3,4,5};

        动态声明:
int[] arr2 = new int[10];

分配内存空间,不分配内存空间

遍历数组
遍历:把每一项都拿出来
数组的遍历是利用for循环和数组的下标实现的
for循环:
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]);
        }
增强for循环:
 

        for (int every: arr1) {
            System.out.println(every);
        }

常见错误:
        1)下标越界:报错ArrayIndexOutOfBoundsException
        2)空指针:报错NullPointerException
        3)传值与传址(重点)
         传地址又叫传引用记住引用类型的都是传地址   
public static void main(String[] args) {
//      传值和传址
        int x=10;
        System.out.println(x);   //10
        a(x);
        System.out.println(x);//  10
        int[] f={1,2,3,4,5};
        System.out.println(f[0]);//1
        b(f);
        System.out.println(f[0]);//10
    }
    public static int a(int y){
        y++;
        System.out.println(y+10);//21
        return y;
    }
    public static int[]  b(int[] t){
        t[0]=10;
        return t;
    }

 
二维数组
 二维数组:
声明规则:数组类型 数组名[][]
                  数组类型[][] 数组名
        静态声明:

int[][] a={{1,2,3,4},{1,2,3},{1,2}};

        动态声明:

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

分配了内存空间静态调用的时候
//  int[][] c = new int[][6] 二维数组不能这么定义
二维数组遍历
for循环
        int[][] a={{1,2,3,4},{1,2,3},{1,2}};
        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();
        }
增强for循环

        for (int[] eve:a) {
            for (int every:eve) {
                System.out.print(every+" ");
            }
            System.out.println();
        }
数组的复制
        System.arraycopy(a,1,b,1,3);
一个类方法而已不常用
排序
        1)冒泡排序:相邻元素比较,如果第一个大于第二个元素,就交换
        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 c=a[j];
                    a[j]=a[j+1];
                    a[j+1]=c;
                }
            }
        }
        for (int eve:a) {
            System.out.println(eve);
        }

        2)选择排序:将第一个元素与后面比较,如果第一个大于第二个则交换位置,交换之后运行上面得步骤。
        for (int i = 0; i < a.length-1; i++) {
            int min=i;
            for (int j = i+1; j <=a.length-1 ; j++) {
                if(a[min] >a[j]){
                    min=j;
                }
            }
            if(min!=i){
                int c=a[min];
                a[min]=a[i];
                a[i]=c;
            }
        }
        for (int eve:a) {
            System.out.println(eve);
        }

        3)调用api排序
       Arrays.sort(a);
        for (int eve:a) {
            System.out.println(eve);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值