Сейчас я изучаю сборники, и из того, что узнал, я увидел, что 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()));
}
}
Вам необходимо переопределить метод 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()'.
Извлечение значения из набора. Итератор можно использовать:
Iterator itr = lista.iterator();
while(itr.hasNext()){
System.out.print(itr.next()+",");
}
Но Поскольку вы пытаетесь поместить объект в Set, дублирующийся объект не будет разрешен, но значения могут быть дублированы