Clase Bolsa Genérica

import java.util.ArrayList;
import java.util.Iterator;

public class Bolsa<T> implements Iterable<T>{
 private ArrayList<T> objetos = new ArrayList<T>();
 private int capacidad = 10;

 public Bolsa() {

 }

 public Bolsa(int capacidad) {
 this.capacidad=capacidad;
 }

 /**
 * @return the objetos
 */
 public ArrayList<T> getObjetos() {
 return objetos;
 }

 /**
 * @param objetos
 * the objetos to set
 */
 public void setObjetos(ArrayList<T> objetos) {
 this.objetos = objetos;
 }
 
 public boolean meteObjeto(T objeto){
 if (objetos.size()<capacidad){
 objetos.add(objeto);
 return true;
 }
 return false;
 }
 public boolean sacaObjeto(){
 if (objetos.size()>0){
 objetos.remove(objetos.size()-1);
 return true;
 }
 return false;
 }
 public boolean sacaObjeto(T objeto){
 return objetos.remove(objeto);
 }
 public boolean cambiaObjeto(T objeto1, T objeto2){
 if (objetos.remove(objeto1)){
 meteObjeto(objeto2);
 return true;
 }
 return false;
 }
 public boolean cambiaObjetoR(T objeto1, T objeto2){
 int pos=objetos.indexOf(objeto1);
 if (pos>=0){
 objetos.set(pos, objeto2);
 return true;
 }
 return false;
 }
 /**
 * @return the capacidad
 */
 public int getCapacidad() {
 return capacidad;
 }
 public String toString(){
 String res=capacidad + " | ";
 for(T s:objetos){
 res+=s+" | ";
 }
 return res;
 }

 @Override
 public Iterator<T> iterator() {
 // TODO Auto-generated method stub
 return null;
 }

}