zoukankan      html  css  js  c++  java
  • JAVA-初步认识-常用对象API(集合框架-LinkedList集合-练习栈堆和队列)

    一. 练习

    对于面试常出现的问题进行介绍。

    这里有两个数据结构,对两者进行一个介绍。

    队列像管子,从左端开始进入,随着后面的进入,先进入的被挤到右端,直到先从右端挤出。

    为了符合项目中的需求,现在准备做这两个机构,完成我们的实际需求。

    有人说,采用前一节讲述的removeFisrt,不是这样来操作的,需求是指让你做个具备特定功能的容器出来,而不是自己书写一下这样的操作。

    我们应该描述这样一个容器,给使用者提供一个容器对象来完成这两种结构中的一种。

    二.

    现在描述一下队列,先编写一个类来描述一下。队列容器有一个特点,能完成先进先出的的操作,调用玩添加方法,调用取的方法时,怎么存进去就怎么取出来。

    当我们自己做容器比较困难的话,可以依赖于现有的容器。

    截图中有两点需要注意:这个类的功能不是继承来的,而是通过类中定义一个特定类型的对象,接着将特定类型对象的方法提取出来作为自己创建对象的方法。

    注意:这种在内部创造特定类型对象,而不是继承特定对象的方法,可以使得自己创建的对象,具备特定的功能,而没有其它功能,看着比较简洁。

    添加和取出的方法,有first和last的标注,两者不同就是队列,相同(addLast和removeLast)就是堆栈。

    最后要判断容器中有没有元素。存和取挺容易知道,但是这个判断也是必须的么?

    本例中,创建的类将LinkList的方法全部封装起来的了,封装完后,就看不到LinkList了,看到的只能是我们自己创建的类。

    其实这么写不太合适,应该提供一个工具类。

    应该提供一个工具类,叫做队列这么一个类,把定义的内容都拿到这个类里面,因为这样是单独的一个对象。同时,DuiLie()前面还要带上public,这要暴露出去方便使用。

    有了定义好的工具类,之前的例子可以换一种写法。

    后期1.6版本又提供了一些新的方法,在LinkList链表结构当中。如下图所示。

    这些方法和现有方法的功能是相同的,但是有些区别,升级是有原因的。

    区别需要知道,开发的时候明确用哪个方法。

    getFirst方法有个特点,如果链表里面什么也没有,调用该方法的话,是没有东西的。它会抛出异常,这个异常叫做没有这个元素异常。

    对于它的替代方法peak来讲,没有元素的话,返回null。空意味着我可以做判断,

     LinkList相对ArrayList要少用一些,因为我们更多是以查询动作为主。

    ---恢复内容结束---

    一. 练习

    对于面试常出现的问题进行介绍。

    这里有两个数据结构,对两者进行一个介绍。

    队列像管子,从左端开始进入,随着后面的进入,先进入的被挤到右端,直到先从右端挤出。

    为了符合项目中的需求,现在准备做这两个机构,完成我们的实际需求。

    有人说,采用前一节讲述的removeFisrt,

  • 相关阅读:
    .NET Interop 工具集
    关于正弦波的算法
    Windows Phone 系列 本地数据存储
    Xaml cannot create an instance of “X”
    Windows Phone 系列 使用 MVVM绑定时无法获取当前值
    Windows Phone 系列 应用程序图标无法显示
    Windows Phone 系列 WPConnect无法上网的问题
    Windows Phone 系列 使用 Windows Phone 保存铃声任务
    WP7.5提交应用
    Windows Phone 系列 动态删除ObservableCollection
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/8259021.html
Copyright © 2011-2022 走看看