内表

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

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

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

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

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

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

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

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

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

 

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

转载于:http://blog.itpub.net/14927513/viewspace-429475/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值