多维数组-

一维数组入门:数组特点:长度固定,连续空间,存储同一种类型数据

数组内存分配图。

for-rach循环:简单,主要用于遍历操作。

一维数组的应用 数组优缺点:优点 按照索引查询效率高;缺点 添加删除元素效率低;按照内容查询效率低(无序)。

冒泡排序:基本的排序算法,理解排序规则,实现并完善排序代码。

数组类型做形参。

数组的界限:

定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;

数组元素的引用方式:arrayName[index] ;index为数组元素下标,可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];

数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 ~ n-1;

每个数组都有一个属性length指明它的长度;数组的长度: 数组名.length

起点: 数组名[0] 终点: 数组名[length-1]

数组也是数据结构中的一种实现,在存储数据的时候经常用数组来存储经常见的数据结构:

1.线性表 ;2.非线性表;3.树;4.图;5.队列;6.堆;7.栈

数组经常用来考算法:

面试需求:

1.写出某个算法

   冒泡排序

   选择排序

   插入排序

   快速排序

2.排序算法的时间复杂度(空间复杂度)

衡量一个数据结构是否是合适的衡量标准。

3.排序算法的稳定性

排序之前数组的元素位置和排序之后的数组元素位置是否发生变化。

二维数组:实质是每个元素是一维数组的一维数组;二维数组内存分配图。

二维数组举例: int [][] a = {{1,2},{3,4,0,9},{5,6,7}}; Java中多维数组不必须是规则矩阵形式

二维数组可以看成以数组为元素的数组。Java中多维数组的声明和初始化应按从高维到低维的顺序进行。

public class Y{
   public static void main(String[] args){                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
       int[][] arr = new int[3][];
          arr[0] = new int[2];
          arr[1] = new int[5];
          arr[2] = new int[3];
 
            arr[0][0]=8;
            arr[0][1]=2;
 
            arr[1][0]=5;
            arr[1][1]=20;
            arr[1][2]=29;
            arr[1][3]=39;
            arr[1][4]=49;
 
            arr[2][0]=200;
            arr[2][1]=59;
            arr[2][2]=408;
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
               System.out.print(arr[i][j]+"\t");
   }
  }
 }
}

java应用程序中的主方法(程序的入口):public static void main(String[] args){…}

命令行参数:1.在启动java应用程序时可以一次性地向应用程序中转递0~多个参数-------命令行参数

2.命令行参数使用格式:

             java  ArrayTwo one three five six "Mr Brown "

由参数args接收

1.空格将参数分开 2.若参数包含空格,用双引号引起来。

public class ArrayTwo{
     public static void main(String[] args){
       for(int i =0;i<args.length;i++){
           System.out.println("args["+i+"]="+args[i]);
   }
  }  
}

数组的拷贝:1.使用java.lang.System类的静态方法

    public static void arraycopy

            (Object src,int srcPos,Object dest, int destPos,int length) 

可以用于数组src从第srcPos项元素开始的length个元素拷贝到目 标数组从destPos项开始的length个位置。

如果源数据数目超过目标数组边界会抛出

    IndexOutOfBoundsException 异常。 

public class ArrayOne{
public static void main(String[] args){

    String[] s = {"Mircosoft","IBM","Sun","Oracle","Apple"};
	 String[] sBak = new String[6];
	 System.arraycopy(s,0,sBak,0,s.length);
	   for(int i=0;i<sBak.length;i++){
		  System.out.print(sBak[i]+" ");
}



该类提供了关于数组操作的API。

1.打印数组-------toString方法。2.比较两个数组是否相同------equals方法。

3.数组排序-------sort方法。 4.数组查找------binarySearch方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值