继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

数组,这些你了解吗?

慕用4979188
关注TA
已关注
手记 266
粉丝 63
获赞 531

什么是数组?

      同一种类型数据的集合,也就是一个容器。运算的时候有很多数据参与运算,那么首先需要做的是什么.不是如何运算而是如何保存这些数据以便于后期的运算,那么数组就是一种用于存储数据的方式,能存数据的地方我们称之为容器。


数组的本质:

    就是去申请一串连续的内存空间,这个对象arr就指向这个这串内存单元的第一个值


数组的好处:

    当我们需要求1000个学生的平均分的时候,不可能去找1000个变量赋值,这样可以,只不过太过于麻烦,于是,引进来了数组,它能给存进来的数据进行自动编号,注意编号从零开始,方便操作这些数据。


数组的声明大致分为两种:


    ①声明数组的同时,指定它的长度

    ②声明数组的同时,指定里面的值

比如:

    ①int arr[] = new int[10];指定数组长度为10

    ②int arr[] = {1,2,3,4,5}指定里面的值

二维数组的声明和一维数组其实都一样,只是多了一个索引值。

    ①int arr[][] = new int[10][10];

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


     1)数组里面存的都是同一类型数据的集合

           a. 即可以是基本类型,也可以是对象类型;

           b. 数组中的每个数据为元素;

    2) 数组是一个对象,成员是数组长度和数组中的元素;
    3) 声明了一个数组变量并不是创建了一个对象;


数组的遍历:


    我们知道拿到数组里的值,其实就是把它的下标依次改变就行了,下标从0开始,所以,我们可以通过for循环去遍历数组、或者foreach(也叫增强for循环)去遍历,其遍历的方式为:

拿一维数组举例:

     int arr[] = {1,2,3,4,5};(1)for(int i = 0;i<arr.length;i++){        System.out.println(arr[i]);    }(2)for(int i:arr){        System.out.println(i);    }


    当我们的数组中没有值时,它们都有默认值。

    下面是对应的默认值:

          byte/short/int/long      0
          float                            0.0f
          double                       0.0d
          String                        null
          char                          '\u0000'

          boolean                    false


放大数组:


    怎么把一个数放到一个指定长度数组里,可是这个数组里都有值,没地方去存,可以先将这个数组进行放大,通过arr =Arrays.copeOf(arr,arr.length+1)此时的arr已经进行了长度+1,并最后一位有个初值0,然后可以通过fill进行填充


复制数组copyOf(arr,int newlenth)

数组查询 binarySearch(Object[]arr,Object key)使用的前提: 数据排好序

int a = Arrays.binarySearch(arr,3);

如果存在多个值,查询的时候会从前往后一次查找,直到找到一个这个值为止,后面还有也不会继续查找。

给数组从小到大进行排序

Arrays.sort(arr);


数组的排序分为两种:


①冒泡排序


     相隔的数去做比较,大的像后冒泡,通过一直去循环,最后小的都在前面,大的在后面。

int arr[] ={7,5,6,2,4,3,1};//声明一个数组for (int i = 1;i<arr.length;i++){//循环数组中的所有元素    int index=0;//声明变量用来接收较大的那个下标    for (int j = 1;j<=arr.length-i;j++){            if (arr[j] > arr[index]){//如果arr[j]大于arr[index] 进入判断                index = j;//把j 赋值给 index            }        }    int midd = arr[index];//两个值去交换,需要一个中间值midd    arr[index] = arr[arr.length-i];//arr[index]就是最后一个元素    arr[arr.length-i]=midd;}


②选择排序


    拿到第一个数依次和后面所有的值作比较,如果小于则交换位置,最后找到第一个最小值,然后再以此类推,完成排序。

int min = 0;for(int i =0;i<arr.length;i++){    int index = i;    for(int j =i+1;j<arr.length;j++){        if(arr[index]>arr[j]){            index = j;        }    }    min = arr[index];    arr[index] = arr[i];    arr[i] = min;}


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP