【问题标题】:Define data type depending on the argument passed in Java根据 Java 中传递的参数定义数据类型
【发布时间】:2016-11-24 04:13:44
【问题描述】:

所以我正在尝试为一个名为 ULS 的项目创建自己的数据类型。 ULS 基本上是一个 100

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

    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>

这只是伪代码,但我怎样才能在语法上正确实现呢?上面的代码是否合法/有效?

【问题讨论】:

  • 因此,在您的“伪代码”中(由于某种意外,Java 中的语法不正确),您说setSmartThresholdULS 是一个“算法”。但是AbstractHashMap AVLTreeMap 是数据类型的示例。我看不出您对“算法”扩展“数据类型”的定义有何意义。算法描述行为,数据类型描述结构。
  • @ErwinBolwidt 我基本上希望我的 SmartULS(我创建的数据类型)根据给定的大小扩展 AbstractHashMap 或 AVLTreeMap。如果有帮助
  • 请用该信息更新您的问题(cmets 仅用于讨论/澄清,问题应独立存在)
  • 您可能只是错误地使用了“扩展”一词。如果AbstractHashMapAVLTreeMap 都扩展(或实现)Map,那么很容易说类似Map&lt;K,V&gt; map; if (blahblah) map = new AbstractHashMap&lt;&gt;(...); else map = new AVLTreeMap&lt;&gt;(...); 这就是你要找的东西吗?

标签: java algorithm hashtable avl-tree abstract-data-type


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-11-24
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多