数组深化与提高

多维数组

二维数组

存储一维数组的数组

1)声明及初始化

1.int [ ] [ ] 数组名= {  {一维数组一},{一维数组二},...};

2..int [ ] [ ] 数组名=new int  [  一维数组的长度  ]  [  二维数组的长度 ]

3.数据类型[ ] [ ] 数组名=new int [二维数组的长度] [ ];

数组名[0] =new int[ ]{一维数组1};

数组名[1] =new int [ ]{一维数组2};

数组名[二维数组的长度-1] = new int[]{一维数组n};


2)二维数组的遍历

1.普通for循环  2.加强for循环  3.普通for循环+加强for循环

编写代码

运行结果



3)杨辉三角

除了第一列和对角线上的元素都为1外,其他元素都等于该元素上面的那个元素1加上元素1左面的那个元素

编写代码

运行结果


数据存储表格数据

  表格数据模型是计算机世界最普遍的模型,可以这么说,大家在互联网上看到的所有数据本质上都是“表格”,无非是表格之间互相套用。

表格         姓名           年龄          性别

                 张三           36               男

                  李四              26             女

编写代码


运行结果


数组的拷贝

数组的拷贝分为地址的拷贝和值的拷贝

1)地址的拷贝

将数组1的地址拷贝到数组2的地址上

数组2=数组1;

2)值的拷贝

数组1[ i]=数组2[ i];

i为数组1和数组2长度的最小值

3)System提供的数组复制的方法

格式:System.arraycopy(object src, int srcpos, object dest, int destpos, int length)

该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。


java.util.Arrary类

java.util.Arrary类:对数组操作的工具类,该工具类中包含一些静态方法可以对数组进行排序,查找,填充,复制等操作

Arrary类常用的方法:

1.//Arrays.toString(数组名),返回指定数组的内容

2.Arrays.equals(数组1, 数组2) 比较两个数组的内容是否完全相等(包括顺序和数值大小),返回值为布尔类型

3.Arrays.copyOf(int[] original, int newLength):复制指定的数组,用零截取或填充,以便复制具有指定的长度,

4.Arrays.fill(int[] a, int val) ,将指定的int值分配给指定的int数组的每个元素

    Arrays.fill(a, fromIndex, toIndex, val);将指定的int值分配给指定的int数组的指定范围的每个元素

5.Arrays.sort(数组名);给数组中的元素排序,升序

6.Arrays.binarySearch(int[]a, int key)使用二叉搜索算法指定的int数组的指定值,前提:待查找的数列必须是有序的

编写代码

运行结果


冒泡排序

1)冒泡排序原理

 算法重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样越大的元素会经由交换慢慢“浮”到数列的顶端。

2)冒泡排序基础算法

1.如有一个数列有 N(5)个元素,则至多需要 N-1(4)趟循环才

能保证数列有序

2.每一趟循环都从数列的第一个元素开始比较,依次比较相

邻的两个元素,比较到数列的最后

3.  如果前一个元素大于后一个元素,则使用第三变量交换

3)比较数列   75,87,56,45,49

编写代码及运行结果

3)冒泡排序优化算法

1.整个数列分成两部分:前面是无序数列,后面是有序数列。

2.不管是否有序,都要进行 N-1 趟循环,比较了一趟,没有发生交换,就是有序

3.每一趟比较都要比较到数组的最后,没有必要,只要比较到无序数列即可

比较数列   75,87,56,45,49


编写代码


运行结果


你可能感兴趣的:(数组深化与提高)