自己做网站除了域名还要买什么,河南第二建设集团网站视频,WordPress 分类目录 加斜杠,网络舆情事件案例数组拓展 1.1 数组拷贝 需求#xff1a;定义一个方法arraycopy, 从指定源数组中从指定的位置开始复制指定数量的元素到目标数组的指定位置。 1.2. 排序操作 需求#xff1a;完成对int[] arr new int[]{2,9,6,7,4,1}数组元素的升序排序操作. 1.2.1.冒泡排序 对未排序的各元素… 数组拓展 1.1 数组拷贝 需求定义一个方法arraycopy, 从指定源数组中从指定的位置开始复制指定数量的元素到目标数组的指定位置。 1.2. 排序操作 需求完成对int[] arr new int[]{2,9,6,7,4,1}数组元素的升序排序操作. 1.2.1.冒泡排序 对未排序的各元素从头到尾依次比较相邻两个元素的大小关系如果前一个元素大于后一个元素则交换位置经过第一轮比较后可以得到最大值同理第二轮比较后出现第二大值以此类推直到数组中数据有有序。 针对int[] arr new int[]{ 2, 9, 6, 7, 4, 1 }数组元素做排序操作 第2轮比较需要比较4次比较完出现第二个大值。 第3轮比较需要比较3次比较完出现第三个大值。 第4轮比较需要比较2次比较完出现第四个大值。 第5轮比较需要比较1次比较完出现第五个大值。 可以看出如有N个元素则需要N-1轮比较第M轮需要N-M次比较。 该数组有6个元素只需要5轮比较。 交换数组中两个元素的方法 排序方法 1.3 二分法查找 查找数组元素的算法 线性查找从头找到尾性能比较低。 二分法查找折半查找前提数组元素是有序的性能非常优异。 1.3.1 二分法搜索原理 猜数字游戏电脑随机生成一个[ 1 , 100 ]之间的商品价格等玩家来猜猜之后电脑提示出三种结果你猜的数偏大偏小和猜中了。 此时为了以最少次数猜中 玩家决定 先猜1100/ 2的商50如果此时电脑提示猜的偏小了那就能推断出该随机数在[ 51 , 100 ]之间此时再猜51100/ 2的商75如果电脑提示猜大了那么该随机数必在[ 51 , 74 ]之间那么继续猜5174/2的商如此每次都可以排除剩下结果一半的可能性直到猜到为止。 关键字以最少的次数猜中在规定的时间(10分钟)猜中最多。 代码如下 1.4. 操作数组的API-Arrays 类似打印数组元素的这样的工具性的方法其实SUN公司的攻城狮们早就写好代码了并封装在了很多工具类中我们把这种预先定义好的方法称为API。对于我们而言最基本的要求就是能调用这些方法当然我们对自己有更高的要求应该知其然并知其所以然。 学习API一定要掌握一个秘诀文档在手, 天下我有! 一定要经常性的查文档 Arrays工具类中的方法一般都是使用static修饰的。 打开JDK帮助文档搜索Arrays类进入该类的文档页面去找toString方法发现在Arrays类中有多个toString方法他们之间属于重载关系分别用于打印不同类型的数组。 如: 查看Arrays类中将int类型数组转换成字符串的toString方法。 如果看方法列表看不懂怎么使用使用鼠标左键点击该方法名称进入该方法的详细 如果看不懂就要静下心来多看几次必须掌握每一部分到底在表达什么意思。 1.4.1. 打印数组元素 API中还有一个专门操作数组的工具类Arrays该类提供了对数组元素的拷贝、元素搜索、元素排序、打印等功能方法且该类为不同数据类型的数组都重载了相同功能的方法。 通过调用Arrays类中的toString方法完成打印数组元素的功能掌握如何给类定义包、导入类以及看API文档。 1.4.2. 拷贝数组元素 Arrays 中提供了数组复制的方法copyOf(int[] original, int newLength) 复制指定的数组截取或者用0填充。 System类中提供了数组元素拷贝的方法并且支持任意类型的数组拷贝而不仅仅是int类型数组。 1.4.3. 数组元素排序 Arrays类中已经提供了数组排序的方法sort并且是调优之后的性能非常优异在开发中只需要我们直接调用该方法即可即可。 1.4.4. 数组元素二分查找 Arrays类中已经提供了数组元素的二分查找。 小结排序和二分法查找的原理需要掌握当然, 在实际开发中, 会调用Arrays类中方法完成相关功能即可。 1.5 数组元素的增删改查操作 假设我现在是某个篮球队的教练需要安排5个球员上场打球。此时需要模拟上场球员的存储简单一点我们就只存储上场球员的球衣号码。那么此时我需要以下几个操作 1初始一个容量为5的容器用来存储场上的5个球衣号码。 2安排5个球员上场比如球员号码分别为11、22、33、44、55。 3查询指定索引位置球员的球衣号码是多少如查询索引位置为2的球衣号码是33。 4替换场上索引位置为2的球员使用333号替换33号。 5罚下场上索引位置为2的球员直接罚下没有补位。 6打印出场上球员的球衣号码打印风格如 [1122334455]。 思考1用于什么存储上面的号码需不需要一个存储号码的容器你想到谁 思考2试想给你一个数组 [11,22,33,44,55] , 会不会对数组容器中的元素进行增加、删除、修改、 查询 思考3试想我再给你一个数组 [10,20,30,40] 还需要你增删改查刚才写的代码能复用吗思考4我们能不能对封装思维的理解进一步升华 ? 1.5.7 让容器支持存储任意数据类型的元素 此时元素类型是Integer类型也就是只能存储整型的数据但是却不能存储其他类型的数据此时我们可以考虑吧元素类型改成Object那么Object数组可以存储任意类型的数据。 import java.util.Arrays;public class MyArrayList {//存储元素容器private Object[] elementData null;//记录元素个数private int size 0;//自定义初始容量public MyArrayList(int initialCapacity) {if (initialCapacity 0) {System.out.println(初始容量不能为负数);return;}this.elementData new Object[initialCapacity];}//默认初始容量为10 public MyArrayList() {this(10);}//向容器中添加一个元素public void add(Object e) {//如果容器容量已满,此时需要扩容此时扩容机制为原来容量的2倍 if (size elementData.length) {this.elementData Arrays.copyOf(this.elementData, size * 2);}//-----------------------------------------this.elementData[size] e;size;// 容器中元素数量加1}//查询指定位置的元素public Object get(int index) {
if (index 0 || index size) {System.out.println(索引越界);return null;}return this.elementData[index];}//替换指定索引位置的元素public void set(int index, Object e) {if (index 0 || index size) {System.out.println(索引越界);return;}this.elementData[index] e;}//删除指定索引位置的元素public void remove(int index) {if (index 0 || index size) {System.out.println(索引越界);return;}for (int i index; i size - 1; i) {this.elementData[i] this.elementData[i 1];}this.elementData[size - 1] null;size--;}public String toString() {if (elementData null) {// 如果没有初始化容器 return null;}if (size 0) {// 如果容器中元素数量为0return [];}StringBuilder sb new StringBuilder(40);sb.append([);for (int index 0; index size; index) { sb.append(this.elementData[index]);
//如果不是最后一个元素if (index ! size - 1) {sb.append(,);} else {sb.append(]);}}return sb.toString();}}注此案例为了引出学习List的原理 文章转载自: http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn http://www.morning.ntnml.cn.gov.cn.ntnml.cn http://www.morning.ygwyt.cn.gov.cn.ygwyt.cn http://www.morning.bwqcx.cn.gov.cn.bwqcx.cn http://www.morning.kqzrt.cn.gov.cn.kqzrt.cn http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn http://www.morning.jqbpn.cn.gov.cn.jqbpn.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.ynstj.cn.gov.cn.ynstj.cn http://www.morning.nfbnl.cn.gov.cn.nfbnl.cn http://www.morning.yggdq.cn.gov.cn.yggdq.cn http://www.morning.lmbm.cn.gov.cn.lmbm.cn http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn http://www.morning.hous-e.com.gov.cn.hous-e.com http://www.morning.prmbb.cn.gov.cn.prmbb.cn http://www.morning.fyskq.cn.gov.cn.fyskq.cn http://www.morning.gjmbk.cn.gov.cn.gjmbk.cn http://www.morning.xhqr.cn.gov.cn.xhqr.cn http://www.morning.ckdgj.cn.gov.cn.ckdgj.cn http://www.morning.ytfr.cn.gov.cn.ytfr.cn http://www.morning.msbct.cn.gov.cn.msbct.cn http://www.morning.ptwrz.cn.gov.cn.ptwrz.cn http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn http://www.morning.cthkh.cn.gov.cn.cthkh.cn http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn http://www.morning.glpxx.cn.gov.cn.glpxx.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.gnfkl.cn.gov.cn.gnfkl.cn http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn http://www.morning.zlrsy.cn.gov.cn.zlrsy.cn http://www.morning.pqhfx.cn.gov.cn.pqhfx.cn http://www.morning.lltdf.cn.gov.cn.lltdf.cn http://www.morning.wmcng.cn.gov.cn.wmcng.cn http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn http://www.morning.lsnbx.cn.gov.cn.lsnbx.cn http://www.morning.niukaji.com.gov.cn.niukaji.com http://www.morning.dfffm.cn.gov.cn.dfffm.cn http://www.morning.khtyz.cn.gov.cn.khtyz.cn http://www.morning.ryzgp.cn.gov.cn.ryzgp.cn http://www.morning.jtszm.cn.gov.cn.jtszm.cn http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.rkdw.cn.gov.cn.rkdw.cn http://www.morning.gppqf.cn.gov.cn.gppqf.cn http://www.morning.xqbbc.cn.gov.cn.xqbbc.cn http://www.morning.mjbkp.cn.gov.cn.mjbkp.cn http://www.morning.lhxkl.cn.gov.cn.lhxkl.cn http://www.morning.bwttp.cn.gov.cn.bwttp.cn http://www.morning.plnry.cn.gov.cn.plnry.cn http://www.morning.lbcfj.cn.gov.cn.lbcfj.cn http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn http://www.morning.xnnxp.cn.gov.cn.xnnxp.cn http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn http://www.morning.ycgrl.cn.gov.cn.ycgrl.cn http://www.morning.mpsnb.cn.gov.cn.mpsnb.cn http://www.morning.dodoking.cn.gov.cn.dodoking.cn http://www.morning.zpyxl.cn.gov.cn.zpyxl.cn http://www.morning.wjndl.cn.gov.cn.wjndl.cn http://www.morning.dybth.cn.gov.cn.dybth.cn http://www.morning.ftntr.cn.gov.cn.ftntr.cn http://www.morning.jcfg.cn.gov.cn.jcfg.cn http://www.morning.bsrcr.cn.gov.cn.bsrcr.cn http://www.morning.lxjxl.cn.gov.cn.lxjxl.cn http://www.morning.hjwkq.cn.gov.cn.hjwkq.cn http://www.morning.jrlxz.cn.gov.cn.jrlxz.cn http://www.morning.cybch.cn.gov.cn.cybch.cn http://www.morning.ygwyt.cn.gov.cn.ygwyt.cn http://www.morning.frmmp.cn.gov.cn.frmmp.cn http://www.morning.diuchai.com.gov.cn.diuchai.com http://www.morning.kkjhj.cn.gov.cn.kkjhj.cn http://www.morning.pbygt.cn.gov.cn.pbygt.cn http://www.morning.fgsct.cn.gov.cn.fgsct.cn http://www.morning.gynkr.cn.gov.cn.gynkr.cn http://www.morning.dgxrz.cn.gov.cn.dgxrz.cn http://www.morning.tftw.cn.gov.cn.tftw.cn http://www.morning.rnmc.cn.gov.cn.rnmc.cn http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn http://www.morning.dfrenti.com.gov.cn.dfrenti.com http://www.morning.pznhn.cn.gov.cn.pznhn.cn