如何在单例类中实现Map?
问题描述:
我的任务是制作一个关于花店的节目。我必须制作一个PriceList,这是一个单身人士。我还有下面给出的测试功能主:如何在单例类中实现Map?
public static void main(String[] args) {
PriceList pl = PriceList.getInstance();
pl.put("rose", 10.0);
pl.put("lilac", 12.0);
pl.put("peony", 8.0);
寻找这些pl.puts(),我决定实现类价格表地图界面,但我不知道究竟该怎么做,当我只有这个类的一个对象,它必须是一个Map。我已经写了很多,不知道下一步该怎么做:
public class PriceList <String, Double> implements Map <String, Double> {
private static PriceList instance = null;
protected PriceList() {}
public static PriceList getInstance() {
if (instance == null)
instance = new PriceList();
return instance;
}
public void put(String string, double d) {
// TODO Auto-generated method stub
}}
在此先感谢您的帮助!
答
您的单身人士是正确的!您可以在类中创建一个Map属性,并将put方法委托给maps的输入方法,而不是实现地图接口。就拿这个例子:
public class PriceList{
private Map<String, Double> map = new HashMap<String, Double>();
private static PriceList instance = null;
private PriceList() {}
public static PriceList getInstance() {
if (instance == null)
instance = new PriceList();
return instance;
}
public void put(String string, double d) {
map.put(string,double);
}
}
+0
我以为我必须创建一个单例类,并且这个类的唯一对象是一个Map。这个解决方案我更方便,谢谢! – yeti
答
有simplier方法可以做到这一点:
添加类PricePerFlower与属性花卉和价格,并把列表作为您的价目表类的属性。
或者只是在您的PriceList类中添加一个Map属性。
答
地图的实现通常是非常复杂的(至少是有效的)。
如果绝对必须使用这个纲要(PriceList
为单身和实施Map
接口),我会建议使用引擎盖下现有的Map实现:
public class PriceList <String, Double> implements Map <String, Double> {
private Map<String, Double> map = new HashMap<>();
private static PriceList instance = null;
protected PriceList() {}
public static PriceList getInstance() {
if (instance == null)
instance = new PriceList();
return instance;
}
public void put(String string, double d) {
map.put(string, d);
}}
听起来像是功课...什么是正是这个问题?你有没有测试过它? – TungstenX
是的,这是一个家庭作业,但它比这更大。我有一个测试课FloristsTest,我不能改变,我必须实施必要的课程才能使其工作。我还没有测试过 – yeti
人们并不热衷于帮助这里的作业 - 这是给你研究,但除此之外,BrunoDM给了一个很好的答案。 – TungstenX