我有兩個班級,Foo和Bar。每個Foo都有一個名字和一堆物品。酒吧包含一串Foo,每個都有一個獨特的名字。集合的成員?
Bar有一個方法,使用fooName和item的AddEntry(1)如果foo的foo已經在Bar中,向Foo中添加另一個項目或(2)如果foo中的fooName不在Bar,用這個名字創建一個Foo,並將這個項目添加到新的Foo中。
這是我如何實施的綱要。有沒有更好的辦法?我只是學習Java,但是這似乎笨重
class Foo { // a name and some items
String fooName;
List<Object> items = new ArrayList<Object>;
Foo(name) {...} // create a named Foo
AddtoFoo(item) {...} // add an item to this Foo
}
class Bar { // a bunch of foo's
List<Foo> fooList = new Arraylist<Foo>;
void AddEntry(String fooName, Object item) {
boolean member = false;
for(Foo foo : fooList){
if{foo.name == fooName) {
member = true;
foo.AddtoFoo(item); // adds an item to this foo
break;
}
}
if(member == false) {
Foo foo = new Foo(fooName); // creates a named foo
foo.AddtoFoo(item); // adds the item
fooList.add(foo); // maintain our list of foo's
}
}
}
您應該使用'foo.name.equals(fooName)'比較'字符串'相等性' – Jeremy 2011-03-03 19:02:38
您的示例是完整的還是僅僅是一種表示?如果完成,您可以使用地圖<字符串,列表
這是一個表示,但關鍵是Bar包含一個Foos列表,每個Foos都有一個名稱和一個項目列表。 – foosion 2011-03-03 19:07:49