根据Java中给定列表的大小创建具有不同实现的数据类型类

因此,我试图创建一个具有不同配置的数据类型类,具体取决于main中给出的列表大小。这是一个房屋列表的数据类型,这个想法是,如果房屋列表(大小)的数量大于1000,我会使用树或AVL树实现名为SmartULS的数据类型。根据Java中给定列表的大小创建具有不同实现的数据类型类

另一方面,如果它小于1000,可以使用散列表来实现。这个想法是根据给定列表的大小,使排序/获取/设置/删除更快。

我到目前为止工作了这一点,但它不工作:

public class houseListings<K,V> { 

protected TreeMap<K,V> tree = new TreeMap<>();

protected AbstractHashMap<K,V> hashMap = new AbstractHashMap<K,V>();

public void setHouseListings(size){

int threshold = 1000;

if (size >= threshold) {

map = new AbtractMap<K,V>();

}

else

map = new TreeMap<K,V>();

}

}

回答:

我想原因它不工作是因为

  1. 你有错别字在你的代码
  2. 你正在使用错误的类型(如AbstractHashMap)。您应该使用HashMapTreeMap

现在,来选择不同的策略“,你应该考虑使用strategy design pattern的理想方式。我已经编写了一些代码来帮助您可视化它。

public static void main(String... args) { 

//... some code that reads/calculates threshold

DataVolumneStrategy strategy;

if (threshold >= 1000) {

strategy = new HighVolumeStrategy();

} else {

strategy = new NormalStrategy();

}

//use map

strategy.getMap();

}

interface DataVolumneStrategy {

Map<K, V> getMap();

}

static class NormalStrategy implements DataVolumneStrategy{

@Override

public Map<K, V> getMap() {

return new HashMap<>();

}

}

static class HighVolumeStrategy implements DataVolumneStrategy {

@Override

public Map<K, V> getMap() {

return new TreeMap<>();

}

}

希望这会有所帮助。

以上是 根据Java中给定列表的大小创建具有不同实现的数据类型类 的全部内容, 来源链接: utcz.com/qa/264896.html

回到顶部