public List findAll(Func f) { List acc = new List(m_of, m_size); for (int i=0; i<m_size; i++) if (f.call(m_values[i], i) == Boolean.True) acc.add(m_values[i]); return acc; }