Java数组

数组是相同类型数据的有序合集,其中的每一个数据被称为数组元素,每个数组元素可以用他们的索引来访问、

他们的长度是确定的,数组被创建他们的大小就是不可改变的,元素可以使任何类型,其元素必须使相同类型,不可以混合类型,

数组引用 length、elements of the array0

数组是一个变量,储存显通数据类型的一组数据

如何使用数组

1声明数组  int []a;

2分配空间  a=new int[3];

3.赋值a[0]=8;

4处理数据a[0]=a[0]*10;

一堆数组的声明方式有两种

int [] arr;     int   arr [];

数组的初始化

数组的初始化除了用new关键字来产生数组之外还可以直接定义数组的同时分配空间并赋值

int a ={1,2,3,4}       

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

数组的界限

每个数组都有一个length来指明她的长度例如a.length

它的起点是a[0];终点是{length-1}

二维数组

二维数组可以看成以数组为元素的数组;

声明和初始化应该按自高到低维顺序进行;

例:

int arr [][]=new int[3][];

a[0]=new int[3](a的0索引中又分为三个小数组

a[1]=new int[5] (a的1索引中又分为五个小数组

a[2]=new int[4] (a的2索引中又分为四个小数组

数组的拷贝

使用java.lang.System类的静态方法

System.arraycopy(s,0,s1,0,s.length); 可以用于数组 src 从第 srcPos 项元素开始的 length 个元素拷贝到目 标数组从 destPos 项开始的 length 个位置。
总结:
数组的特点:长度固定、连续空间、存储同一种数据类型
优缺点:
优点:按照索引查询效率高
缺点:添加删除效率低
二维数组:
        实质是每个元素是一维数组的一维数组;
附加:
数组在面试过程中经常被问到的算法:
        冒泡排序
        选择排序
        插入排序        
        快速排序
排序算法的时间复杂度(空间复杂度)
   衡量一个数据结构是否是合适的衡量标准
排序算法的稳定性
   算法执行之前和执行之后数组中元素的位置是否发生了变化
冒泡排序:
for(int  i=0;i<.length;i++){
        for(int k =0;k<.length-1-i;k++){
        if(?[k]?>?[k+1]){(如果前面的数大于后面的数,则交换位置)
                int tem =?[k];
                ?[k]=?[k+1];
                ?[k+1]=tem;
}
}
}
选择排序
for(int i = 0;i<?.length;i++){
            int index = i;( 记录一下假定最小值的位置
            for(int k = i;k<?.length;k++){
            判断后面的数是否比假定最小的数还小,如果还小就把位置重新标记,后面的数就跟这个新标定的值进行对比
                if(?[k] < ?[index]){
                    index = k;
}
}
            //如果找到比假定位置更小的值,就交换位置
            int temp = array[index];
            array[index] = array[i];
            array[i] = temp;
}
使用Arrays类中的sort方法进行排序
Arrays.sort(数组名)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值