多维数组
二维数组
存储一维数组的数组
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
编写代码
运行结果