从现有子集创建子集的有效方法?

时间:2011-03-29 07:28:41

标签: java performance oop

我正在寻找一个很好的解决方案来创建现有集合的子集。 例如,我有一个具有1000个对象(或其他......)的集合,我需要创建一个由该主集合中的100个对象组成的“团队”。 我正在使用JAVA,我知道如果我只用这100个对象创建另一个数组。

假设我有一个A类,一个B类和一个C类.B类包含该集合,C类包含子集(team..wtv),该集合由A类对象组成。我的问题是A类“需要知道”它是否构成C类对象的一部分是C类的特定实例。

我希望我能够清楚地解释我的情况并获得一些帮助。

谢谢;]

1 个答案:

答案 0 :(得分:0)

我认为类A有一个方法可以将C的实例与A相关联,就像在父/子关系中一样。

class A {
   void setParent(Object obj);
   Object getParent();
}

在这种情况下,在您过滤B中包含的原始集后,使用addAsetMySet将您的子集与C相关联:

class C {
   private Set<A> mySet;

   public void addA(A a) {
      mySet.add(a);
      a.setParent(this);
   }

   public void setMySet(Set<A> subset) {
      mySet = new HashSet<A>(subSet);
      for(A a in subSet) {
         a.setParent(this);
      }
   }

}