嗨,大家不能迭代或从ItemSet获取项目,这是我的代码

物品类别

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(ItemSet itemset) {
        Item item=null;
        return item;
    }

}


ItemSet类保存项目列表

public  class ItemSet   {

    private List<Item> hold;

    ItemSet(Item item) {
        hold = new ArrayList<Item>();
        this.hold.add(item);
    }

    ItemSet() {
        //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);
    }

}


这是我的Transaction类保存的ItemSets列表

public class Transaction  {

    private List<ItemSet> trans;

    public ItemSet getUniqueItem() {
        ResultSet rs;
        Database d=new Database();
        ItemSet unique=new ItemSet();
        String query="Select id,name from item";
        rs=d.sendQuery(query);
        try{
            while(rs.next()) {
                System.out.println(rs.getString(1)+"\t"+rs.getString(2));
                Item item=new Item(rs.getString(1),rs.getString(2));
                unique.addItems(item);
            }
        } catch(Exception e) {
            System.out.print(e.getMessage());
        }
        return unique;
    }

}


这是我的主班

public class Ap {

    public static void main(String args[]) {
        Transaction t=new Transaction();
        Transaction Ci=new Transaction();
        Transaction Li=new Transaction();

        ItemSet I=t.getUniqueItem();    //11
    }
}


我不知道如何从11的ItemSet获取项目

我尝试使用

foreach(Item i:I) {

}


但是我遇到了错误。

最佳答案

为了能够使用for (Item i : itemSet),您的ItemSet类必须实现iterable接口。您可以通过在ItemSet类中添加以下方法来做到这一点:

public Iterator<Item> iterator() {
    return hold.iterator();
}


请记住,您应该在类声明中添加implements Iterable<Item>

请注意,您始终可以使用for (Item i : itemSet.getItemSet())

关于java - 无法迭代itemSet中的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12221296/

10-10 19:37