private void buildFastScrollIndex() {
        mapFirstPosition = new LinkedHashMap<>();
        final ArrayList<String> sectionList = new ArrayList<>();
        String lastComparable = null;
        for (int x = 0; x < list.size(); x++) {
            final String comparable = getComparable(x);
            if (!StringUtils.equals(lastComparable, comparable)) {
                mapFirstPosition.put(comparable, x);
                sectionList.add(comparable);
                lastComparable = comparable;
            }
        }
        sections = new String[sectionList.size()];
        sectionList.toArray(sections);
        mapSection = new LinkedHashMap<>();
        for (int x = 0; x < sections.length; x++) {
            mapSection.put(sections[x], x);
        }
    }
detect whether all caches in this list belong to a series with similar names
main/src/main/java/cgeo/geocaching/ui/CacheListAdapter.java