Java数据结构问题

Qua*_*Oat 5 java data-structures

我想知道在以下场景中使用的最佳数据结构是什么:

我有2个对象类型A和B.

A可能包含许多B的实例

A.name是唯一的.B.name在它的A实例中是唯一的(尽管不是全局唯一的)

我希望能够提供诸如getA(String aName)之类的访问器方法返回一个; getB(String aName,bName)返回b;

非常感谢所有帮助,

克里斯

Jon*_*eet 6

听起来你需要这样的东西(除了更好的名字,初始化,错误处理等 - 这只是一个骨架):

public class AContainer
{
    private Map<String, A> map;

    public A getA(String name)
    {
        return map.get(name);
    }

    public B getB(String nameA, String nameB)
    {
        return getA(nameA).getB(nameB);
    }
}

public class A
{
    private Map<String, B> map;

    public B getB(String name)
    {
        return map.get(name);
    }
}
Run Code Online (Sandbox Code Playgroud)


Kyl*_*lar 1

public class DataStructure{
      private Map<String, A> aMap = new HashMap<String, A>();
      public getA(String name){
          return aMap.get(name);
      }
      public getB(String aName, String bName){
          A anA = getA(aName);
          if(null != anA){
              return anA.getB(bName);
          }else{ 
              return null;
          }
    }
}
public class A{
    String name;
    Map<String, B> myBs = new HashMap<String, B>();
    public A(String name){
        this.name = name;
    }
    public void putB(B foo){
        myBs.put(foo.getName(), foo);
    }
    public B getB(String bName){
        return myBs.get(bName);
    }

 }


public class B{
    String name;
    public B(String name){
        this.name=name;
    }
}
Run Code Online (Sandbox Code Playgroud)