1

嘿伙计们,我有我用来创建 Item 对象的类 Item

 public class Item {

 private String id; 
 private int count;
 private String  name;


public int getcount()
{
   return this.count; 
}

public Item(String name)
 {
     this.name=name;
     this.id = "";

 }



public Item(String id, String name)
 {
     this.name=name;
   this.id=id;

 }

public Item(int count)
{
    this.count=count;
}

public String getItemName()
{
    return this.name;
}

public String getItemId()
{
    return this.id;
}

public Item returnItems(ItemList itemset)
{
    Item item=null;

    return item;
}

}

我有存储项目列表的 ItemList 类。这是添加项目对象列表

public  class ItemList implements Iterable<Item> 
{

  private List<Item> hold=new ArrayList<Item>();



  ItemList(Item item)
{


  this.hold.add(item); 
}

ItemList() {
    //throw new UnsupportedOperationException("Not yet implemented");
}


public List<Item> getItemSet()
{
    return this.hold;

}


public void addItems(Item item)
{
    //hold = new ArrayList<Item>();
    this.hold.add(item);
}


@Override
public Iterator<Item> iterator() {
     Iterator<Item> item = hold.iterator();
    return item; 
}



}

假设我最初将 I1,I2,I3 项目对象添加到项目列表中,如下所示

 {I1}
 {I2}
 {I3}

现在我想按如下方式创建 Item 对象的子集并添加到 ItemList ,其中每个子集将包含 2 个 Item

     {I1 I2}
     {I1 I3}
     {I2 I3}

请帮助创建一个子集稍后我什至想要2个或更多项目的子集我想编写一个函数来帮助我创建n个项目的子集请帮助

4

1 回答 1

0

我个人认为您的 ItemList 类的 API 不会帮助您实现目标。
您需要使用Sets,以便使用“集合论”API
(即交集、联合等)。
您的 ItemList 类可能应该有一个“asSet”方法将 ItemList 连接到 Set。
您将需要实施“PowerSet”计算以获取所有可能的项目子集。
使用 Set API 实现它比不使用它更容易。
你也可以使用一些来自互联网的开源——例如,我现在用谷歌搜索,发现了这个——
查看了这个 URL 指向的类实现的 PowerSet 的接口。

于 2012-09-01T07:31:14.930 回答