public ArrayList getDataBySection(String filterHitConcept) {

    ArrayList results = new ArrayList();
    HashMap conceptMap = new HashMap();
    Iterator iter = this.data.listIterator();
    int currentPosition = 0;
    while (iter.hasNext()) {
      StudentsConceptHit cHit = (StudentsConceptHit) iter.next();
      if (filterHitConcept.equals("Progress") ? true : filterHitConcept.equals(cHit.getSection())) {
        Integer position = (Integer) conceptMap.get(cHit.getHitConcept());
        if (position == null) {
          results.add(cHit);
          conceptMap.put(cHit.getHitConcept(), new Integer(currentPosition));
          currentPosition++;
        } else {
          StudentsConceptHit previousStudentsConceptHit =
              (StudentsConceptHit) results.get(position.intValue());
          previousStudentsConceptHit.setHitDegree(
              previousStudentsConceptHit.getHitDegree() + cHit.getHitDegree());
        }
      }
    }

    return results;
  }