ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 内表

内表

原创 Linux操作系统 作者:chandlersong 时间:2008-08-15 22:09:39 0 删除 编辑

刚刚接触abap才3个月。而abap里面,最先引起我注意的就是内表。因为发觉它真的很神奇。

       在abap里面是没有数组的概念。所以来说,内表给我的第一印象就是一个abap里面的准数组。但是其有“麻烦”的地方。

       首先,一定要需要一个结构,当然你可以直接的用把其定义成一个对象。比方说一个表中的一个字段。但是我个人还是习惯把其看成是一个结构,只是在这一个结构中只有一个字段。看起来比想象数组而已。

       其次,每个内表都要带个拖油瓶,不是工作区就是field-symbol。尽管来说用field-symbol从本质上来讲也是对内表的直接操作。但是对于吹毛求疵的我来说,那些多余的代码在我看来也是一个拖油瓶。

        当然除了麻烦之外,还有很多方便的地方。比方说给其在运用的地方做了很多方便的“接口”。使其几乎所有abap的数据对象都能极其方便的往内表面里面塞。这里有几乎是因为我不知道abap里面的数据对象有多少,但是我碰到的都能往里面塞。除了这些之外,还配备了诸如sort,read等方式对其内部进行准操作。

        之所以说内表是表,而不是数组。是因为其有index和key的概念,而正是这概念,使得内表分为了三类。

         第一类是标准表,也是所有内表中最接近数组的一种表。对于内表来说,用index定位要比key来的快,这适用于标准表。但是我没有发现,除此之外,通过系统自带的手段来提升标准表处理的速度。也许这看起来是个软肋,但是这也提供了其最宽松的处理条件。你可以任意的对其进行insert,delete和modify等操作。而这是其他表所不具备的。

         第二类是排序表。在这里index依然是最快的定位方式。但是对于一张内表中的key项来说,如果依靠其进行定位会比非key值快很多。因为在定位数据的时候,对key值进行的二分法查找。当然此时,你无法直接的对key值进行操作,并且通过index来修改受到了极大的限制。

         第三类,hash表。如果想要了解什么是hash表,找本数据结构的书看看吧。里面讲的比我清楚。看过之后,你同时也会明白,基于index的定位,在hash里面基本没有什么意义,也就是无效。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14927513/viewspace-429475/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 初学数据结构
请登录后发表评论 登录
全部评论

注册时间:2008-07-30

  • 博文量
    12
  • 访问量
    11563