2016-11-24 87 views
1

所以我试图为一个名为ULS的项目创建自己的数据类型。 ULS基本上是一个100 <大小< 500,000列表,其中包含8位数字(整数)键到不同的房子列表。根据Java中传递的参数定义数据类型

根据列表的大小,由于每个房屋列表可能因城市而异,因此我试图根据给定列表的大小实现不同的抽象数据类型。见下:

Algorithm setSmartThresholdULS(Size): 
Input: Integer Size that defines the list size. 
Ouput: Data structure implemented with the given size 

Int Threshold <- 1000 

If Size is smaller than Threshold then 
    setSmartThresholdULS(Size) extends AbstractHashMap<K,V> 

Else if Size is greater than Threshold then 
    setSmartThresholdULS(Size) extends AVLTreeMap<K,V> 

这只是伪代码,但我怎么能实现这句法正确?上面的代码甚至是合法/有效的?

+1

因此,在你的“伪代码”(这不是一些意外,在Java语法上是正确的),你说'setSmartThresholdULS'是一个“算法”。然而'AbstractHashMap'和'AVLTreeMap'是数据类型的例子。我不明白你的“算法”扩展“数据类型”的定义是否有意义。算法描述行为和数据类型描述结构。 –

+0

@ErwinBolwidt我基本上想要我的SmartULS(我创建的数据类型)扩展AbstractHashMap或AVLTreeMap取决于给定的大小。如果有帮助 – lesterpierson123

+0

请使用该信息更新您的问题(注释仅用于讨论/澄清,问题应该自行解决) –

回答

0

是的,根据具体情况可以创建不同的数据结构。这通常是在工厂模式下完成的。不,对于较大的数据集使用可扩展性较差的数据结构没有任何意义。