gpt4 book ai didi

java - 集合的成员?

转载 作者:行者123 更新时间:2023-12-01 06:47:48 25 4
gpt4 key购买 nike

我有两个类,Foo 和 Bar。每个 Foo 都有一个名称和一堆项目。 Bar 包含一堆 Foo,每个 Foo 都有一个唯一的名称。

Bar 有一个方法 AddEntry,它接受 fooName 和一个项目 (1) 如果具有 fooName 的 foo 已在 Bar 中,则向 Foo 添加另一个项目,或者 (2) 如果具有 fooName 的 foo 不在 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
}

}
}

最佳答案

我会使用Map<String, Foo>将 foo 名称映射到 foo 对象。

Map<String, Foo> fooMap = new HashMap<String, Foo>();

所以你可以这样做

Foo foo = fooMap.get(fooName);
if( foo == null)
{
foo = new Foo(fooName);
fooMap.put(fooName, foo);
}
foo.AddtoFoo(item);

关于java - 集合的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5185194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com