Java数据结构与算法(一)

一、学习数据结构与算法的目的

        预估程序在大量的数据集上运行时需要的时间成本和空间成本。

 

二、递归简介

         递归的四条基本法则:

        一个简单的递归案例:

 三、实现泛型特性构建 pre-java5

1.引入泛型的好处

         面向对象的一个重要目标是对代码重用的支持,采用泛型可以提高代码的重用性。然而,泛型编程的实现是通过使用继承的一些基本概念来完成的,java中的基本思想是通过使用像Object这样的超类来实现泛型类。

        以上的代码存在两个问题:

       一是不能使用基本类型,不能直接把基本类型数据写入内存MemoryCell;

       二是在main方法中,把“37”写到MemoryCell对象中然后又从对象中读出,为了访问这种对象的一个特定(read)方法,就必须强制转换成正确的类型。

     

 

2.基本类型的包装

     为了解决上面的第一个问题,如果需要int基本数据类型,我们可以引入Integer包装类。包装类是存储一个基本的数据类型,并添加一些这种基本类型不支持或不能正确支持的操作。

     3.使用接口类型或者函数对象表示泛型

              采用Object作为泛型,考虑在由一些项组成的数据中找出最大项的问题。基本的代码是类型无关的,但是它的确需要一种能力来比较任意连个对象,并确定哪个是最大的,哪个是最小的。因此,我们不能直接找出Object的数组中的最大元素。最简单的想法就是找出Comparable的数组中的最大元。要确定顺序,可以使用compareTo方法,我们知道,它对所有的Comparable都必然是现成可用的。

        以上方案并不是总能行得通,第一,只有实现Comparable接口的那些对象才能够作为Comparable数组的元素被传递;

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值