Распечатать набор коллекции

1

Сейчас я изучаю сборники, и из того, что узнал, я увидел, что Set - это тип коллекции, который не позволяет дублировать элементы. Хорошо, я создал класс, который добавляет три номера int в коллекцию. Кажется хорошо, но вопрос в том, как я могу напечатать эту коллекцию? Я знаю, что могу переопределить метод String, но поскольку мои элементы являются целыми типами, как я могу это сделать? Мой ожидаемый результат: 2,3,2 4,5,6

Код (добавление номеров)

public class adaugareNumere {
int c=0;
int f=0;
int r=0;

adaugareNumere(int c, int f, int r){
this.c=c;
this.f=f;
this.r=r;
}


}

Основной класс:

import java.util.*;
public class Executare {



public static void main(String[] args) {
    adaugareNumere primulRand=new adaugareNumere(2,3,2);
    adaugareNumere alDoileaRand=new adaugareNumere(2,3,2);
    adaugareNumere alTreileaRand=new adaugareNumere(4,5,6);
    Set<adaugareNumere> lista=new HashSet<adaugareNumere>();
    lista.add(primulRand);
    lista.add(alDoileaRand);
    lista.add(alTreileaRand);
    System.out.println("Elementele listei: "+Arrays.asList(lista.toString()));

}

}
  • 2
    Пожалуйста, соблюдайте соглашения об именах: классы начинаются с заглавной буквы. И сделайте отступ в своем коде правильно.
  • 1
    Также не забудьте переопределить equals и hashcode.
Теги:
set
collections

2 ответа

4
Лучший ответ

Вам необходимо переопределить метод toString() в классе adaugareNumere.

Пример:

@Override
public String toString() {
    return "adaugareNumere [c=" + c + ", f=" + f + ", r=" + r + "]";
}

И просто укажите список в заявлении SOP.

System.out.println("Elementele listei: " + lista); // No need for 'Arrays.asList()' or 'toString()'.
  • 0
    Хорошо, я учил, что могу переопределить этот метод в другом классе, но я допустил ошибки в своем заявлении. Так что это хорошее решение. Спасибо. Ставка
  • 0
    Еще один вопрос: почему дубликаты элементов (2,3,2) печатаются два раза? Разве они не должны быть только один раз в Сете?
Показать ещё 2 комментария
2

Извлечение значения из набора. Итератор можно использовать:

Iterator itr    =   lista.iterator();
while(itr.hasNext()){
        System.out.print(itr.next()+",");
    }

Но Поскольку вы пытаетесь поместить объект в Set, дублирующийся объект не будет разрешен, но значения могут быть дублированы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню