This is my assignment, I'm working on the step 3:
I need to implement a method called getItems() that takes a boolean value and returns a new ArrayList with items having the property that match the given value.
So far When I print it out it just shows the whole list in the array list, not only the objects having true property.
My code:
    import java.util.ArrayList;
public class Shoppinglist9_6_pt2 {
    ArrayList<Item> shoppingList = new ArrayList<>();
    public Shoppinglist9_6_pt2(ArrayList<Item> shoppingList) {
        this.shoppingList = shoppingList;
    }
    public void showList() {
        for ( Item item : shoppingList){
            System.out.printf("\nItem:%s Ct:%s", item.getName(),
                    item.getCt());
        }
    }
    public ArrayList<Item> getItems(boolean gotIt) {
        gotIt = true;
        for (Item item : shoppingList){
            if(item.getGotIt() == gotIt){
                showList();
            }else{
                gotIt = false;
            }
        }
        // Todo: return an ArrayList of item that
        //      match the gotIt true or false value.
        //      For example if set to True, then return
        //      an ArrayList of Item with gotIt=True.
        return new ArrayList<Item>();
    }}
public class Item {
    private String name;
    private int ct;
    private boolean gotIt;
}
    public Item(String name, int ct,boolean gotIt) {
        this.name = name;
        this.ct = ct;
        this.gotIt = gotIt;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getCt() {
        return ct;
    }
    public void setCt(int ct) {
        this.ct = ct;
    }
    public boolean getGotIt(){
        return gotIt;
    }
    public void setGotIt(boolean gotIt) {
        this.gotIt = gotIt;
    }
    @Override
    public String toString() {
        return "Item :" +
                "name='" + name + '\'' +
                ", ct=" + ct +
                "Got it=" + gotIt;
    }
}
This is my main:
public class inClass_Shopping_9_6_pt2 {
     public static void main(String[] args) {
         Shoppinglist9_6_pt2 sl = new Shoppinglist9_6_pt2();
         sl.addItem( "Banana", 6,true);
         sl.addItem("Coconut", 2,false);
         sl.addItem("Apple", 12,true);
         sl.getItems(true);
      }
 }
Also, you might observe the method gotIt() is grayed out & says parameters can be converted to a local varaible, same with the return. 'Item' in ArrayList<Items> is grayed out and says explicit type argument item can be replaced with <>, but this is the template my professor had sent us, and we need to follow it.

 
     
     
    