泛型到底厉害在什么地方?

可以大大减少我们的代码量,可以把我们从重复工作中解放出来,使我们更加专注于核心代码的实现,核心算法的编写。

举一个最简单的例子:

我们在学习数据结构时,为了理解方便和简化编程,通常都使用整数作为分析的对象。利用Java的泛型机制,只需要将int类型换成泛型类型T就可以用在各种不同的类型中。

package com.mingrisoft.generic;import java.util.Arrays;public class BinSearch {public static <T extends Comparable<? super T>>  int search(T[] array, T key) {//? super T 表示包含T在内的任何T的父类int low = 0;int mid = 0;int high = array.length;System.out.println("查找的中间值:");while (low <= high) {mid = (low + high) / 2;System.out.print(mid+" ");if (key.compareTo(array[mid]) > 0) {low = mid + 1;} else if (key.compareTo(array[mid]) < 0) {high = mid - 1;} else {System.out.println();return mid;}}return -1;}public static void main(String[] args) {Integer[] ints = {1,2,3,4,5,6,7,8,9,10};System.out.println("数据集合:");System.out.println(Arrays.toString(ints));System.out.println("元素3所对于的索引序号:"+search(ints, 3));}
}

Java 利用泛型实现折半查找法相关推荐

  1. java学习笔记之折半查找法(二分法)

    2019独角兽企业重金招聘Python工程师标准>>> package Xhe.com; //折半查找法(二分法) public class halfSearch {     pub ...

  2. 折半查找法.java

    哈喽,很高兴见到大家,这次是用java语言写的折半查找法,实际上, 小白通过对比C语言里的二分法,小白发现,这两种办法的原理相同. 可以参考高中学的查找零点的办法. import java.util. ...

  3. java中折半查找思想_java折半查找法

    折半查找法是效率较高的一种查找方法.假设有已经按照从小到大的顺序排列好的五个整数a0~a4,要查找的数是X,其基本思想是: 设查找数据的范围下限为l=1,上限为h=5,求中点m=(l+h)/2,用X与 ...

  4. 一维数组——折半查找法

    [问题描述] 编写程序,利用折半查找法从一个升序排列的数列中查找某数是否存在,如果存在则输出该数的下标,否则输出no,输出查找过程中和中间元素比较的次数. [输入形式] 输入分3行:第一行为n的值,代 ...

  5. 折半查找法(二分搜索法)

    学习C语言的时候,折半查找法应该是很多人绕不开的一个简单算法.作为一名C语言的初学者,第一次看这个算法的时候着实是有些头疼.不过仔细读读发现其实并没有想象中那么难. 折半搜索,也称二分搜索是一种在有序 ...

  6. 数据结构--折半查找法 详解

      1. 折半查找法定义          折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, ...

  7. 递归应用:折半查找法

    折半查找法介绍 在计算机科学中,折半搜索(英语:half-interval search),也称二分搜索(英语:binary search).对数搜索(英语:logarithmic search),是 ...

  8. 二分法实战教学快速入门(折半查找法)

    //二分查找法(折半查找法) //主要思路:将一个顺序已经排好的数组如从小到大, //分别取第一位和末位为low和high,取mid为两者位置数的平均值 //输入key,每次在循环中判断key与mid ...

  9. 用折半查找法查找某一字符在字符串中的位置

    一.题目描述 从键盘输入一个字符,用折半查找法找出该字符在已排序的字符串str中的位置.若该字符不在str中,则打印输出**.(更好的阅读体验,请移步我的个人博客) 二.分析解答 此题主要考察字符串的 ...

最新文章

  1. input 正则验证(摘)
  2. javascript--拖动图片时取消浏览器默认提示
  3. Spring Boot 2 实践记录之 条件装配
  4. 基于ArcEngine实现分组统计面积的功能
  5. 在eclipse中引入jquery.js文件报错的解决方案
  6. 一级调研员比三级调研员退休金高多少?
  7. JavaScript 框架之战结束:React 是最终赢家?
  8. Excel2007中插入页眉和页脚
  9. 推荐《与孩子一起学编程》,与孩子一起开启pathon编程之路吧
  10. AI智能电话机器人源码搭建的原理与功能
  11. php使用redis实例,php中使用redis队列操作实例代码
  12. 离线OCR、文字识别、ios证件扫描、ios系统OCR(ios、android)
  13. 异常数据剔除---格拉布斯准则(java实现)
  14. 视频教程-【企业定制课】AI软件illustratorCC应用与平面印刷视频教程-UI
  15. 个人和企业都免费的office办公软件
  16. C语言实现洛谷题库中的 P1125 [NOIP2008 提高组] 笨小猴
  17. 2022强网杯pwn部分wp
  18. matlab解简单数学规划(线性,非线性,整数规划)
  19. ept技术_intel EPT 机制详解
  20. Linux系统mysql半同步复制

热门文章

  1. python百度百科-Python语言的发展简史
  2. python数据分析-如何学习和评价《利用python进行数据分析》这本书?
  3. python基础教程免费下载-Python基础教程(第2版)
  4. js 语音识别_js语音识别_js 语音识别库 - 云+社区 - 腾讯云
  5. 车载语音识别,不只一句“hey Siri”
  6. 科大讯飞语音识别 支持多语音欢迎指点
  7. 解决从登录页通过this.$router.push跳转首页后 点返回健路由变而页面不变的问题
  8. jQuery微博登录
  9. golang MySQL 占内存_使用golang插入mysql性能提升經驗
  10. 滑动窗口:LeetCode 3 无重复字符的最长子串