Как на самом деле работает addAll в TreeSet и HashSet?

Когда я добавил свои данные в treeSet, я потерял почти все свои данные. Кажется, у меня есть только первый элемент моего набора.

Я прочитал этот вопрос Hashset vs Treeset для оптимизации кода и попытался сделать что-то подобное. Но мне особо не удалось.

Ввод:

int iValue = 0;

    HashSet results = new HashSet();
    for(Document doc : docs) {
        NodeList nList = doc.getElementsByTagName("TEXT");

        for (int temp = 0; temp < nList.getLength(); temp++) {
            Node nNode = nList.item(temp);
            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                Element eElement = (Element) nNode;
                iValue = searchWords.searchOnTag(eElement, szSearch);
                if(iValue > 0) {
                    results.add(new TagResult(eElement, iValue));
                }
            }
        }
    }
    System.out.println("Set :\n-------------------------");
    for(TagResult result : results) {
        System.out.println(getTagValue("Tag",result.getElement()));
    }
    Set sortedResult = new TreeSet(new Comparator() {

        public int compare(TagResult e1, TagResult e2) {
            return e2.getValue() - e1.getValue();
        }
    });

    sortedResult.addAll(results);

    System.out.println("Sorted Result :\n-------------------------");
    for(TagResult result : sortedResult) {
        System.out.println(getTagValue("Tag",result.getElement()));
}

Результат выполнения дает мне это:

Вывод

Набор:

TXT_KEY_RELIGION_POSITIF_MEDIAN_05
TXT_KEY_RELIGION_POSITIF_MEDIAN_02
TXT_KEY_RELIGION_POSITIF_04
TXT_KEY_RELIGION_POSITIF_06
TXT_KEY_RELIGION_POSITIF_05
TXT_KEY_RELIGION_POSITIF_03
TXT_KEY_RELIGION_POSITIF_MEDIAN_06
TXT_KEY_RELIGION_POSITIF_MEDIAN_01
TXT_KEY_RELIGION_POSITIF_MEDIAN_04
TXT_KEY_RELIGION_POSITIF_MEDIAN_08
TXT_KEY_RELIGION_POSITIF_MEDIAN_03
TXT_KEY_RELIGION_POSITIF_02
TXT_KEY_RELIGION_POSITIF_07
TXT_KEY_RELIGION_POSITIF_01
TXT_KEY_RELIGION_POSITIF_MEDIAN_09
TXT_KEY_RELIGION_POSITIF_MEDIAN_07

Отсортированный результат:

TXT_KEY_RELIGION_POSITIF_MEDIAN_05

Я не понимаю, почему у меня эта проблема.

5
задан Community 23 May 2017 в 12:30
поделиться