最新要闻
- 世界观察:民营天龙二号液体火箭首飞成功:还隐藏了一个中国第一
- 天天看热讯:不知道这几点!你买电动牙刷就是花冤枉钱
- 世界热资讯!热泵干衣机被严重低估了!浑身都是宝
- 环球快报:2023上海车展丨这些即将首发的热门新车你一定不要错过!
- 云南泼水节白天是热闹夜晚是浪漫:市民游客共狂欢
- 员工回应公司发布高薪招聘老板公告:不是开玩笑
- 贾跃亭憋了九年的车终于量产?结果 又一张大饼!
- 环球快报:四边等宽的鸿蒙手机来了!华为nova 11明天发
- 潍坊风筝节放飞打工人的心声:引发网友热议
- Intel鸡血驱动暴涨63%!Arc A750性价比秒杀RTX 3060 72%!
- 当前最新:天舟六号飞船、长征七号火箭抵达文昌!五次发射 100%成功
- 山东泰山队vs上海申花首发出炉:四外援先发,韩镕泽镇守球门
- 每日热讯!“泼水节被撕扯雨衣”女生发声:很崩溃
- 世界快报:众人狂欢!泼水节连狗路过都得淋两桶水再走
- 贝贝健电蚊香液到手14.9元:驱赶蚊虫神器 夏天必备
- 全球信息:超级SSD 21合一组成168TB!价格直奔20万元
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球热议:扎实打牢数据结构算法根基,从此不怕算法面试系列之005 week01 02-05 使用自定义类测试我们前面实现的支持泛型的线性查找法
1、算法描述
2、上一篇的实现结果
在扎实打牢数据结构算法根基,从此不怕算法面试系列之004 week01 02-04 使用泛型实现线性查找法中,我们实现了:
package com.mosesmin.datastructure.week01.chap02;/** * @Misson&Goal 代码以交朋友、传福音 * @ClassName LinearSearch03 * @Description TODO * @Author MosesMin * @Date 2023/4/13 * @Version 1.0 */public class LinearSearch04 { private LinearSearch04(){} public static int search(E [] data,E target){// 将search方法定义为泛型方法 for (int i = 0; i < data.length; i++) if (data[i].equals(target))// 这里判断相等不能使用==了,==判断的是引用相等,这里需要使用判断值相等,所以用equals方法 return i; return -1; } public static void main(String[] args) { Integer [] data = {1,18,22,10,35};//3、所以这里的解决方法是,将int修改为Integer //int res = LinearSearch04.search(data,10);// 1、这里报错了,因为Java中泛型只能接受类对象,不能接受基本数据类型 //此时,这里的参数10已经被JVM从int类型的10自动转换为Integer类型的10了,所以不再报错 int res = LinearSearch04.search(data,10); //Java7以前需要加上这样的泛型限定,Java8以后可以省略 System.out.println(res); //int res2 = LinearSearch04.search(data,666);// 2、这里报错了,因为Java中泛型只能接受类对象,不能接受基本数据类型 int res2 = LinearSearch04.search(data,666);//此时,这里的参数10已经被JVM从int类型的666自动转换为Integer类型的666了,所以不再报错 System.out.println(res2); }}
3、代码实现
实现一个Student类
package com.mosesmin.datastructure.week01.chap02;/** * @Misson&Goal 代码以交朋友、传福音 * @ClassName Student * @Description TODO * @Author MosesMin * @Date 2023/4/13 * @Version 1.0 */public class Student { private String name; public Student(String name) { this.name = name; }}
测试Student类,声明一个Student类数组students,在students中查找学生目标元素mosesmin
(资料图)
package com.mosesmin.datastructure.week01.chap02;/** * @Misson&Goal 代码以交朋友、传福音 * @ClassName LinearSearch03 * @Description TODO * @Author MosesMin * @Date 2023/4/13 * @Version 1.0 */public class LinearSearch05 { private LinearSearch05(){} public static int search(E [] data,E target){// 将search方法定义为泛型方法 for (int i = 0; i < data.length; i++) if (data[i].equals(target))// 这里判断相等不能使用==了,==判断的是引用相等,这里需要使用判断值相等,所以用equals方法 return i; return -1; } public static void main(String[] args) { Integer [] data = {1,18,22,10,35};//3、所以这里的解决方法是,将int修改为Integer //int res = LinearSearch04.search(data,10);// 1、这里报错了,因为Java中泛型只能接受类对象,不能接受基本数据类型 //此时,这里的参数10已经被JVM从int类型的10自动转换为Integer类型的10了,所以不再报错 int res = LinearSearch05.search(data,10); //Java7以前需要加上这样的泛型限定,Java8以后可以省略 System.out.println(res); //int res2 = LinearSearch04.search(data,666);// 2、这里报错了,因为Java中泛型只能接受类对象,不能接受基本数据类型 int res2 = LinearSearch05.search(data,666);//此时,这里的参数10已经被JVM从int类型的666自动转换为Integer类型的666了,所以不再报错 System.out.println(res2); Student [] students = { new Student("Peter"), new Student("John"), new Student("Paul"), new Student("MosesMin") };// Peter 彼得、John 约翰、Paul 保罗、MosesMin都是耶稣的门徒——学生 Student mosesmin = new Student("MosesMin"); int res3 = LinearSearch05.search(students,mosesmin); System.out.println(res3); }}
查找结果:
返回-1,没有找到。
为什么呢?因为学生类没有重写equals方法,所以默认调用的是Java中的基类Object类的equals方法,该方法源码如下,比较的是对象(即引用,在内存中的地址)是否相等,而不是比较对象的值是否相等。
public boolean equals(Object obj) { return (this == obj);}
可以参考文章Java中==和equals()的区别 详细了解区别。
所以这里需要我们为Student类重写覆盖Object类的equals方法。重写完equals方法的Student类如下:
package com.mosesmin.datastructure.week01.chap02;/** * @Misson&Goal 代码以交朋友、传福音 * @ClassName Student * @Description TODO * @Author MosesMin * @Date 2023/4/13 * @Version 1.0 */public class Student { private String name; public Student(String name) { this.name = name; } /** * 覆盖实现Object类的equals方法 * @param student * @return */ @Override public boolean equals(Object student){ if (this == student) return true; if (student == null) return false; if (this.getClass()!=student.getClass()) return false; Student another = (Student)student;//将传来的Object类型的参数student变量强制转换为Student类型的变量,并赋值给another return this.name.equals(another.name);// 这里this.name是String类型,调用的是String类型的equals方法,String类的equals方法重写了Object类的equals方法,比较的是String字符串的值 } /** * Student类自己的equals方法 * @param student * @return */ public boolean equals(Student student){ return false; }}
注意,重写equals方法时,下面这三个非常简单的套路判断条件,一看代码应该就可以动,可以记住它们:
if (this == student) return true; if (student == null) return false; if (this.getClass()!=student.getClass()) return false;
此时,再次执行LinearSearch05类的main方法,进行测试,可以看到如下测试结果:
如图,在students数组中找到了mosesmin,mosesmin的索引为3。
关键词:
-
环球热议:扎实打牢数据结构算法根基,从此不怕算法面试系列之005 week01 02-05 使用自定义类测试我们前面实现的支持泛型的线性查找法
1、算法描述2、上一篇的实现结果在扎实打牢数据结构算法根基,从此不怕算法面试系列之004week0102-04使...
来源: -
每日快播:React onBlur回调中使用document.activeElement返回body解决方案
React在onBlur函数中调用document activeElement总是返回body,得不到新的聚焦元素怎么办?
来源: 环球热议:扎实打牢数据结构算法根基,从此不怕算法面试系列之005 week01 02-05 使用自定义类测试我们前面实现的支持泛型的线性查找法
如何获取软件包的下载地址 wget curl
基于GPT3的代码编辑器Cursor试用-你的智能代码编辑助手
每日快播:React onBlur回调中使用document.activeElement返回body解决方案
世界观察:民营天龙二号液体火箭首飞成功:还隐藏了一个中国第一
天天看热讯:不知道这几点!你买电动牙刷就是花冤枉钱
世界热资讯!热泵干衣机被严重低估了!浑身都是宝
环球快播:致聂红的一封信
环球快报:2023上海车展丨这些即将首发的热门新车你一定不要错过!
云南泼水节白天是热闹夜晚是浪漫:市民游客共狂欢
员工回应公司发布高薪招聘老板公告:不是开玩笑
热推荐:java -- File类和递归
贾跃亭憋了九年的车终于量产?结果 又一张大饼!
环球快报:四边等宽的鸿蒙手机来了!华为nova 11明天发
潍坊风筝节放飞打工人的心声:引发网友热议
Intel鸡血驱动暴涨63%!Arc A750性价比秒杀RTX 3060 72%!
当前最新:天舟六号飞船、长征七号火箭抵达文昌!五次发射 100%成功
山东泰山队vs上海申花首发出炉:四外援先发,韩镕泽镇守球门
每日热讯!“泼水节被撕扯雨衣”女生发声:很崩溃
世界快报:众人狂欢!泼水节连狗路过都得淋两桶水再走
贝贝健电蚊香液到手14.9元:驱赶蚊虫神器 夏天必备
全球信息:超级SSD 21合一组成168TB!价格直奔20万元
全球视点!扎实打牢数据结构算法根基,从此不怕算法面试系列之001 week01 02-01 什么是算法?
焦点快报!女子花2万为猫移植鱼皮被网暴 本人:救治一半不可能放弃
全球热头条丨女子澄清妈妈做月嫂存款482万为虚构:觉得好玩就发了 现在很后悔
环球热文:养男三不碰,养女三讲究,教出来的孩子才能立足社会!
世界信息:Air724UG开发板串口教程
首发宁德时代麒麟电池 极氪009 ME版正式交付:根治续航焦虑
环球百事通!超智驾轿跑SUV!小鹏G6将亮相上海车展
学系统集成项目管理工程师(中项)系列06b_信息系统安全管理(下)
【打怪升级】【微服务】聊聊微服务拆分设计
微头条丨《世界尽头的咖啡馆》-热衷于有意义的事,追求真我。
31-触发器01
2023年4月自考《人力资源管理(一)》真题答案汇总
卡普空更新出尔反尔:突然移除《生化危机2/3》Steam版光追
世界速看:奥利奥礼包到手39元:夹心饼干、巧脆卷全都有
环球看点!Vulnhub Fall Walkthrough
环球消息!苹果在线服务又出Bug:用户被迫反复输入Apple ID
每日视点!余承东罕见认错:还连甩五项重磅技术更新
《灌篮高手》赤木刚宪预告 大猩猩怒吼霸气登场
每日看点!Visual Studio Code开发常用的工具栏选项,查看源码技巧以及【vscode常用的快捷键】
环球快资讯丨也门和平进程迎来重要机遇
环球时讯:《流浪地球2》网播热度不减:上线后全网热度登顶
今日热文:深入理解 JVM ------ 调优案例分析与实战
观热点:1年内5名机车网红车祸身亡:靠摩托车来吸睛涨粉 已成“流量密码”
世界热点评!当心寄生虫!女生15元买15个螺肉疑为福寿螺 央视科普如何区分
FreeSWITCH添加iLBC编码及转码
世界最资讯丨负数有奇数和偶数吗_奇数和偶数是什么意思
华为鸿蒙HarmonyOS 4.0来了!余承东确定秋天发布
世界热点评!熊猫“蔓越煤”胡萝卜卡喉 饲养员海姆立克法施救:不愧是“生命的拥抱”
最新消息:《3D编程模式》写书-第3次记录
全球焦点!推荐给你让人震惊的网站集合
快看点丨迪士尼《小美人鱼》黑人鱼主演发声反对霸凌:要和我一样可爱
天天实时:国内首颗主动降水测量卫星成功发射!中国又拿下全球唯一
每日短讯:中国人民银行行长易纲会见印度尼西亚财长英卓华
【焦点热闻】使用 APT-mirror 四步配置 Ubuntu 本地软件仓库
环球快播:【见•闻】日本汽车界对合成燃料汽车赛道寄予厚望
最资讯丨超越“乔帮主” 库克成苹果任职时间最长的CEO
环球信息:存失速、起火风险!奔驰中国召回近25万辆汽车
天天滚动:清明过后教你美味简单的几道家常菜,好吃不容错过,上桌抢着吃
今亮点!14nm以上EDA工具国产化!华为:完成了软件/硬件开发78款工具的替代
每日热议!特斯拉降价是为打“价格战”?马斯克否认并透露原因
世界即时:女子鱼刺卡喉花1265元取出直呼贵!提醒:切勿自行处理
环球焦点!day01-Redis入门
销量大跌 资金链断裂!广汽本田一4S店老板“跑路”
坐燃油车从来不晕车 为何坐电动车很容易晕车?
每日精选:欧拉发布1080°女性安全架构:刹车自动增强、一键紧急呼救
环球要闻:华为4月17日首发全液冷超充架构 充电桩功率“遥遥领先”
今日视点:中国人自己的技术!比亚迪云辇-X实测:三个轮子行驶、过弯超平稳
今头条!卢拉访华:在国际外交舞台上演“王者归来”
预训练模型-从BERT原理到BERT调包和微调
【世界热闻】我的第一个项目(十) :处理全局变量(解决模块化后变量无法获取的问题)
【环球新视野】2023年Rust发展如何?
环球速看:可怕一幕!男子骑摩托车遭风筝线勒喉受伤 官方科普风筝线比刀还锋利
焦点信息:男子未悬挂号牌 竟是嫌老婆选的“250”车牌太丢人
【天天播资讯】为鼓励走出家门:韩国为宅男宅女每月发3400元补贴 网友直呼羡慕
世界热议:解决国产手机厂商5G卡脖子:国产射频滤波器搞定了 年产12万片项目落地
世界热头条丨女子吐槽领导隔监控点名员工加班 大家为工作不敢反抗:网友唏嘘
【世界聚看点】广东家常菜名字_广东家常菜
全球播报:socat的下载和基础使用
天天热文:比亚迪上海车展几号展台公布:比亚迪百万豪车在这里
当前焦点!2023LPL春季赛总决赛落幕 JDG 3:1击败BLG问鼎总冠军
全球最资讯丨宣传防盗、防电诈,送反诈螺蛳粉!柳州警方为企业守平安
【Visual Leak Detector】VS 中 VLD 输出解析
当前通讯!upload-labs writeup
每日视点!1克燃料等于8吨石油 日本明确首个核聚变战略:2050年发电
曝淄博酒店网上标价千元前台仅200元引热议:官方回应
全球关注:首发仅1899元!铁威马F4-423(4G)四盘位NAS开售
【Visual Leak Detector】在 VS 2015 中使用 VLD
世界关注:WTT新乡冠军赛:孙颖莎获女单冠军
全球百事通!智己NOA体验:高速上我撒手半个小时 回过头竟还在人寰
环球热推荐:网易云音乐上线“鲸云母带”音质:一首歌170MB SVIP专享
视焦点讯!如何快速而优雅的解决问题(提问的智慧简略版)
天天讯息:cin与CTRL+z的问题
世界快看点丨如何防止设备被重复控制
【环球快播报】破纪录!西班牙女子洞穴生活500多天 回地面称“不想出来”
世界热消息:被海鸥圈粉 沈义人:感觉要购入第一台比亚迪了
每日精选:成龙被观众当场要求退票上热搜 电影《龙马精神》回应:起诉造谣账号
最新资讯:几十秒看完10分钟的视频 就靠这AI输入法:日语也不怕
快讯:唯一全面实现国产化!低端低价的1LCD爆发:超DLP成智能投影仪主流