Java数据结构与算法(一)

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

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

 

二、递归简介

         递归的四条基本法则:

Java数据结构与算法(一)_第1张图片

        一个简单的递归案例:

Java数据结构与算法(一)_第2张图片

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

1.引入泛型的好处

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

Java数据结构与算法(一)_第3张图片

Java数据结构与算法(一)_第4张图片

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

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

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

     

 

2.基本类型的包装

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

Java数据结构与算法(一)_第5张图片

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

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

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

 

 

 

 

你可能感兴趣的:(Java数据结构与算法(一))