Зарегистрируйтесь, чтобы продолжить обучение

Сеты Java: Коллекции

Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.

Коллекции, реализующие интерфейс Set

// Класс HashSet

Set<String> set = new HashSet<>();
set.add("Egor");
set.add("Max");
set.add("Ivan");

System.out.println(set); // => [Egor, Max, Ivan]
System.out.println(set.size()); // => 3

Set<Item> itemSet = new HashSet<>();
itemSet.add(new Item(1, "Зубная щетка", 100));
itemSet.add(new Item(2, "Замороженная пицца", 200));
itemSet.add(new Item(3, "Мороженое", 100));

System.out.println(itemSet);
// => [
// =>     Item{id=1, name='Зубная щетка', cost=100},
// =>     Item{id=2, name='Замороженная пицца', cost=200},
// =>     Item{id=3, name='Мороженое', cost=100}
// => ]

itemSet.add(new Item(1, "Пельмени", 300));
System.out.println(itemSet);
itemSet.add(new Item(4, "Пельмени", 300));

System.out.println(itemSet);
// => [
// =>    Item{id=1, name='Зубная щетка', cost=100},
// =>    Item{id=2, name='Замороженная пицца', cost=200},
// =>    Item{id=3, name='Мороженое', cost=100},
// =>    Item{id=4, name='Пельмени', cost=300}
// => ]

// Класс LinkedHashSet

Set<Item> itemLinkedHashSet = new LinkedHashSet<>();
itemLinkedHashSet.add(new Item(1, "Зубная щетка", 100));
itemLinkedHashSet.add(new Item(2, "Замороженная пицца", 200));
itemLinkedHashSet.add(new Item(3, "Мороженое", 100));
System.out.println(itemLinkedHashSet);
// => [
// =>    Item{id=1, name='Зубная щетка', cost=100},
// =>    Item{id=2, name='Замороженная пицца', cost=200},
// =>    Item{id=3, name='Мороженое', cost=100}
// => ]

// Класс TreeSet
Set<Item> itemTreeSet = new TreeSet<>();
itemTreeSet.add(new Item(1, "Зубная щетка", 100));
itemTreeSet.add(new Item(2, "Замороженная пицца", 200));
itemTreeSet.add(new Item(3, "Мороженое", 50));
System.out.println(itemTreeSet);

Класс Item

public class Item {
    private Integer id;
    private String name;
    private Integer cost;

    public Item(Integer id, String name, Integer cost) {
        this.id = id;
        this.name = name;
        this.cost = cost;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getCost() {
        return cost;
    }

    public void setCost(Integer cost) {
        this.cost = cost;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof Item)) {
            return false;
        }
        Item item = (Item) o;
        return Objects.equals(getId(), item.getId());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getId());
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Item{");
        sb.append("id=").append(id);
        sb.append(", name='").append(name).append('\'');
        sb.append(", cost=").append(cost);
        sb.append('}');
        return sb.toString();
    }
}

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff