-
分享使用eclipse,如何获取数组索引值及最大值
2020-07-03 19:53:24按需求实现功能需求分析遍历的类冒泡的类功能的类测试的类运行结果 需求 给定一个任意数组,设计出一个功能查询,查询这组数组中某个元素的索引,也要自动获取数组中的最大...3)还需要定义功能类cha,在这里面要实现查需求
给定一个任意数组,设计出一个功能查询,查询这组数组中某个元素的索引,也要自动获取数组中的最大值 并提示。
分析
1)对于这个给定的数组,需要输出在控制台上,那么需要创建一个类bianLi,这个类就是按顺序输出给定的数组功能;
2)为了实现获取最大值,需要通过一个工具功能,就是如何获取最大值,提供两种方法冒泡或者选择排序法,当然还有其他的功能,在这里只展示冒泡,那么定义一个maoPao类;
3)还需要定义功能类cha,在这里面要实现查询这个数组的某一个数的索引值,所以要有一个查索引值的getInder
方法,为了实现获取数组中最大值所以也要实现一个getInder
方法的重载;
4)最后定义一个测试类Test,将上述功能实现。遍历的类
public class bianLI { public static void printArray(int[] arr) { System.out.print("["); for(int x=0 ; x<arr.length ; x++) { if(x == arr.length-1 ) { System.out.println( arr[x] + "]" ); }else { System.out.print( arr[x] + ", " ); } } } }
冒泡的类
public class maoPao { public static void maoArray(int[] arr) { for(int x = 0; x < arr.length-1 ;x++) { for(int y = 0; y < arr.length-1-x ;y++) { if( arr[y]> arr[y+1] ) { int temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; } } } } }
功能的类
public class cha { //查询索引值 public static int getInder( int[] arr, int value) { for(int x= 0 ; x<arr.length ; x++) { if( arr[x] == value ) { return x; } } return -1; //如果没有输入的数字控制台输出:-1 } //获取最大值 public static int getInder( int[] arr ) { maoPao.maoArray(arr); int x = arr.length-1; return x; } }
测试的类
package com_qianfeng_04; import java.util.Scanner; //已知数组{20,12,8,87,24} ,请设计一个功能查询出 12 这个元素在该数组中出现的索引,请设计一功能获取数组中的最大值 public class Test { public static void main(String[] args) { int[] arrl = {20,12,8,87,24}; System.out.println("********************"); System.out.println("这是一组数组"); bianLI.printArray(arrl); System.out.println("********************"); System.out.println( ); System.out.println("请输入您要查询的对应数字索引值"); Scanner sj = new Scanner(System.in); int i = sj.nextInt(); System.out.println("-------------"); int shuZi = cha.getInder(arrl, i); System.out.println("您查询对应数字的索引值是:"+ shuZi); System.out.println( ); System.out.println("-------------"); int x = cha.getInder(arrl); System.out.println("该数组中最大数字是:"+ arrl[x] ); } }
运行结果
输入的数字在数组内的结果展示
输入的数字不在数组内的结果展示
-
用java实现ArrayList(顺序存储结构),并实现插入,删除等基本操作
2020-07-26 23:30:12Java中的ArrayList在底层实际上使用数组实现的,它拥有和数组相似的特性,容易存取,不容易插入或者删除。 下面来看看如何手动实现一个ArrayLis,实现的ArrayList中增加有泛型。 首先创建一个名为hxzArrayList的类...目录
Java中的ArrayList在底层实际上使用数组实现的,它拥有和数组相似的特性,容易存取,不容易插入或者删除。
下面来看看如何手动实现一个ArrayLis,实现的ArrayList中增加有泛型。
首先创建一个名为hxzArrayList的类,里面有我们待实现的方法:
class hxzArrayList<E>{ Object[] elementData;//定义容器中的属性 private int size;//容器中元素的个数 private static final int DEFAULT_CAPACITY = 10;//在未指定容器的情况下,容器的默认大小 public hxzArrayList();//构造方法的重载,对容器进行初始化 public hxzArrayList(int capacity); public void arraylistAdd(E element);//向容器中增加元素 public String toString();//打印容器中的元素 public void arrayListRemove(E element);//删除容器中的元素 public void arrayListRemove(int index); public void arrayInsert(int pos , E e);//插入元素 public int getSize();//获得元素的个数 public void set(E element , int index);//替换指定下标的元素 public E get(int index);//获得指定下标的元素 public void checkIndex(int index);//检查下表是否合法 }
构造方法的重载,对容器进行初始化
public hxzArrayList() { elementData = new Object[DEFAULT_CAPACITY]; } public hxzArrayList(int capacity) { if(capacity<0) { throw new RuntimeException("容器的容量不能为负数!");//手动抛出异常 }else if(capacity==0) { elementData = new Object[DEFAULT_CAPACITY]; }else { elementData = new Object[capacity]; } }
向容器中增加元素
public void arraylistAdd(E element) { //当元素个数(size)与数组的长度相等时,要扩容 if(size==elementData.length) { //把当前数组所有元素拷贝到另一个更大的数组中去 Object[] newArrayList = new Object[elementData.length+(elementData.length>>1)]; System.arraycopy(elementData, 0, newArrayList, 0, elementData.length); elementData = newArrayList; } elementData[size++] = element; }
打印容器中的元素
public String toString() { StringBuilder sb = new StringBuilder(); sb.append("["); for(int i=0 ; i<size ; i++) { sb.append(elementData[i]+","); } sb.setCharAt(sb.length()-1,']'); return sb.toString(); } }
这里我们假设容器内都是String类型的元素,重写toString()方法,创建StringBuffer对象,把容器中元素追加到StringBuffer对象中去。
判断索引是否合法
public void checkIndex(int index) { if(index<0||index>size) { throw new RuntimeException("该索引不合法!"); } }
获取指定下标的元素
public E get(int index) { checkIndex(index); return (E)elementData[index]; }
通过指定元素来删除容器中的元素
public void arrayListRemove(E element) { for(int i=0 ; i<size ; i++) {//不能使用elementData.length if(element.equals(get(i))) { arrayListRemove(i); } } }
注意:for(int i=0 ; i<size ; i++) 在for循环的判断语句中不能把size用elementData.length代替。
这是因为:当容器中元素的个数(size)小于数组的长度时,随着for循环,i 的值不断增大,当i增大到比size大时,检查下标是否合法的checkIndex方法就会抛出异常。
而且,比较元素的值是否与指定元素相等时,记住要用equals方法,而不能是==!
通过指定下标删除容器中的元素
public void arrayListRemove(int index) { int move = elementData.length-index-1; if(move>0) System.arraycopy(elementData, index+1, elementData, index, move); elementData[--size] = null; }
插入元素,在pos个位置,这里是从1开始计数的
public void arrayInsert(int pos , E e) { Object[] str1 = new Object[size+1]; System.arraycopy(elementData, 0, str1, 0, size); System.arraycopy(str1, pos-1, str1, pos, size-pos); str1[pos-1] = e; elementData = str1; size++; }
插入和删除的本质都是通过数组的复制来实现的。
-
深度剖析:如何实现一个 Virtual DOM 算法
2021-01-09 00:43:15在你的 JavaScript 代码里面存储这样的数据: <pre><code> javascript var sortKey = "new" // 排序的字段,新增(new)、取消(cancel)、净关注(gain... -
javascript入门笔记
2018-05-15 15:01:073、如何 将变量的数据 打印在控制台上?? 4、一条语句中声明多个变量 var 变量名1=值,变量名2=值,变量名3; 3、变量名命名规范 1、由字母,数字,下划线以及 $ 组成 var user_name; 正确 var user-name; 错误... -
Excel_VBA教程
2014-09-22 11:36:34第七课 如何在EXCEL里使用定时器 20 三、学习微软 EXCEL 2002 VBA 编程和XML,ASP技术 22 第一章 电子表格自动化简介和了解宏命令 22 1了解宏 22 2宏命令的普通应用 22 3写宏之前的计划 23 4录制宏 24 5运行宏 26 6... -
4.2.8 如何在父类中为子类自动完成所有的hashcode和equals实现?这么做有何优劣。 4.2.9 请结合OO设计理念,谈谈访问修饰符public、private、protected、default在应用设计中的作用。 4.3.0 深拷贝和浅拷贝区别。 ...
-
传智播客韩顺平php2011年就业培训班400多集
2015-11-17 11:32:369-28 2 二维数组的定义使用 数组排序 9-28 3 顺序查找 二分查找 9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程... -
net学习笔记及其他代码应用
2010-11-16 18:15:09private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。 2 .列举ASP.NET 页面... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以... -
java源码包---java 源码 大量 实例
2013-04-18 23:15:26Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥... -
java 面试题 总结
2009-09-16 08:45:34知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以... -
java源码包2
2013-04-20 11:28:17Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥... -
java源码包3
2013-04-20 11:30:13Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥... -
成百上千个Java 源码DEMO 4(1-4是独立压缩包)
2017-03-29 17:40:59Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥... -
成百上千个Java 源码DEMO 3(1-4是独立压缩包)
2017-03-29 17:39:54Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥... -
java源码包
2015-12-01 16:29:37Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥... -
php高级开发教程说明
2008-11-27 11:39:22如果仅仅需要遍历一个数组并将所有元素都设为0,这无疑显得太冗长了(见 清单1 - 1)。 清单1-1 一个过于冗长的实例 另一方面,使用I、j、k(而不是像$ i n s t M y I n t e g e r C o u n t e r I n s t a n c e... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:42Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥... -
JAVA上百实例源码以及开源项目
2016-01-03 17:37:40Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥... -
Java面试宝典2020修订版V1.0.1.doc
2020-05-21 19:24:4813、你是如何使用jquery中的ajax的? 27 14、jquery中的$.get和$.post请求区别? 27 15、jquery中如何操作样式的? 28 16、如何设置和获取HTML和文本的值? 28 17、Jquery能做些什么? 28 18、在ajax中data主要有哪... -
最新Java面试宝典pdf版
2011-08-31 11:29:2270、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 48 71、说出一些常用的类,包,接口,请各举5个 49 72、java中有... -
java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心
2018-08-13 11:20:07【基础】当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 17 【基础】重载(Overload)和重写(Override)的区别。重载的方法能否... -
Java面试宝典2010版
2011-06-27 09:48:2713、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置? 14、如何查看在weblogic中已经发布的EJB? 十. EBJ部分 1、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,... -
比较有趣的一些进展包括如何在一些特殊的场景去定位,比如在长隧道里面,既没有 GNSS 信号,也没有太好的激光或者视觉特征的时候如何定位。 5. 合作系统(CooperativeSystems): 主要涉及如何协同多个无人车去...
-
MFC的程序框架剖析
2015-03-05 09:53:1923、框架对象、文档对象和视类对象是通过一个单文档模板指针来有机地组织在一起,并利用AddDocTemplate函数 把这个单文档模板添加到文档模板中,从而把这三个类组织成为一个整体 24、MFC程序的CAboutDlg类继承于... -
java面试宝典2011整理有答案
2011-11-09 13:36:0670、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 48 71、说出一些常用的类,包,接口,请各举5个 49 72、java中有... -
导师计划--数据结构和算法系列(上)
2020-12-09 04:46:22我们来创建一个数组并打印出结果就一目了然了: <pre><code>javascript let arr = ['鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', ... -
Node.js的DAO框架bearcat-dao.zip
2019-07-17 06:24:42bearcat-dao 在类(model)和数据库之间建立了一个额外的中间层,这就为如何在类和数据库表之间建立映射关系带来了更大的灵活性,使得在不用改变数据模型或者对象模型的情况下改变它们的映射关系成为可能。... -
代码语法错误分析工具pclint8.0
2010-06-29 07:00:09用开发环境进行LINT也可以使用开发环境来执行LINT操作,一般开发环境都支持运行可执行文件,但不一定支持运行批处理文件,下面用Source Insight , Ultra Edit, MSVC 6.0 来举例说明如何在开发环境下进行LINT。...
收藏数
41
精华内容
16
-
Windows系统管理
-
java泛型实现方法_Java泛型的实现方法:类型擦除
-
综武大唐:从剑圣收徒开始(一)
-
实验8:七段数码管扫描显示实验.docx
-
Liunx 优化思路与实操步骤
-
完美解决B/S无法上传大文件方法
-
java泛型类 方法 接口_java 泛型 -- 泛型类,泛型接口,泛型方法
-
高性能计算资源及安装配置使用
-
java泛型设计_从零开始来看一下Java泛型的设计
-
java后端学习路线.jpg
-
owasp mantra.zip
-
【布道者】Linux极速入门
-
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
UC1697v_V1.01_20071128.pdf
-
2021年 系统分析师 系列课
-
实验11:直流电机实验.docx
-
【深入理解JVM 五】JVM运行时数据区域
-
MHA 高可用 MySQL 架构与 Altas 读写分离
-
FTP 文件传输服务
-
NSGA-2源程序(可以运行)