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,

  • 相关阅读:
    并发编程之多线程理论
    僵尸进程和孤儿进程
    并发编程之多进程
    并发编程之多进程理论
    操作系统介绍
    面向对象和网络编程练习题
    网络编程——socket编程
    面向对象练习题
    面向对象软件开发实战
    异常处理
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/8259021.html
Copyright © 2011-2022 走看看