Как распечатать set java
Перейти к содержимому

Как распечатать set java

  • автор:

 

How to print out a hashset

I just now started working with hashsets and I am trying to print it out but all it prints out is its location i tried Iterator and .toString() here is my code :

1 Answer 1

You have to print the content of your array. Arrays.toString(char[] a) will do that for you :

Alexis C.'s user avatar

    The Overflow Blog
Linked
Related
Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.13.43306

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Как распечатать set java

In HashSet, duplicates are not allowed. If we are trying to insert duplicates then we won’t get any compile-time or runtime error and the add() method simply returns false.

We can use 2 ways to print HashSet elements:

  1. Using the iterator() method to traverse the set elements and printing it.
  2. Directly printing it using a reference variable.

Method 1: By using Cursor which is Iterator.

  • If we want to get objects one by one from the collection then we should go for the cursor.
  • We can apply the Iterator concept for any Collection Object and hence it is a Universal Cursor.
  • By using Iterator we can perform both read and remove operations.
  • We can create an Iterator object by using the iterator method of Collection Interface.

public Iterator iterator(); // Iterator method of Collection Interface.

Java Print HashSet Example (Display HashSet)

This example shows how to print HashSet in Java. This example also shows how to print HashSet elements using for loop, Arrays class, and Java stream.

How to print HashSet elements in Java?

There are several ways using which we can print HashSet elements or display HashSet elements in the console as given below.

1. Using the for loop

We can use the enhanced for loop to iterate over HashSet object and display the elements one by one.

2. Using the Iterator

Instead of using the for loop, we can also use the Iterator as given below.

3. Using the Arrays class

We can convert the HashSet to an array and then use the toString method of the Arrays class to display the array as given below.

If you do not want the opening and closing square brackets, you can remove them by using the regular expression along with the String replaceAll method as given below.

4. Using forEach (Java 8)

If you are using Java version 8 or later, you can use the forEach method to print the HashSet elements.

How to print HashSet of custom class objects?

Let’s see what happens when we try to print HashSet of custom class objects using the enhanced for loop.

Since the Order custom class has not overridden the toString method, the toString method inherited from the Object class is used when we print the element. The toString method of the Object class returns a string containing the object information in “[email protected]_hashcode” format that is not useful to read.

If we want to print useful information, we need to override the toString method in the Order class as given below.

Список всех коллекций

Список всех коллекций 1

— Элли мне сказала, что ты хотел больше примеров коллекций. Сейчас я дам тебе несколько. Хочу представить тебе список коллекций и интерфейсов:

 

Интерфейс Класс/Реализация Описание
List ArrayList Список
LinkedList Список
Vector Вектор
Stack Стек
Set HashSet Множество
TreeSet Множество
SortedSet Отсортированное множество
Map HashMap Карта/Словарь
TreeMap Карта/Словарь
SortedMap Отсортированный словарь
Hashtable Хеш-таблица

— Хм. Как их много. Четыре List’а, три Set’а и четыре Map’а.

— Да, это все различные реализации интерфейсов List, Set и Map.

— А чем отличаются различные реализации?

— Об этом как раз сегодня мы тебе и расскажем. Просто подожди немного.

— Может, у тебя уже накопились какие-нибудь вопросы?

— Как вывести список на экран я знаю. А как вывести Set и Map?

— У элементов списка (List) есть четко заданный порядок, поэтому их можно вывести просто по номеру. У Set и Map строго заданного порядка элементов нет. Собственно говоря, порядок их элементов может меняться при удалении или добавлении какого-нибудь элемента.

— Поэтому для работы с элементами коллекций были придуманы специальные объекты – итераторы. С их помощью можно пройтись по всем элементам коллекции, даже если у них нет номера, а только имена (Map), или вообще нет имён – Set.

-Примеры:

— Ничего себе! И что все это значит?

— На самом деле все довольно просто. Сначала мы получаем у коллекции специальный объект-iterator. У него есть всего два метода

1. Метод next() возвращает очередной элемент коллекции.

2. Метод hasNext() проверяет, есть ли еще элементы, которые не возвращал next().

— Ага. Похоже ситуация начинает проясняться. Давай я расскажу, как я все это понял.

— Так. Сначала надо вызвать у коллекции метод iterator(), чтобы получить этот волшебный объект-итератор.

— Затем мы в цикле, пока есть еще неполученные элементы, получаем их по одному. Получаем мы очередной элемент коллекции с помощью вызова next(), а проверяем, есть ли еще элементы в итераторе с помощью hasNext(). Все верно?

— Да, примерно все так и есть. Но самое интересное будет сейчас.

— В Java есть сокращённая запись работы с итераторами. По аналогии с while, в for был добавлен еще один специальный оператор «for each» — «для каждого». Обозначается тоже ключевым словом for.

— Оператор for each используется только при работе с коллекциями и контейнерами. В нем неявно используется итератор, но мы видим уже полученный элемент.

— Давай я покажу тебе длинную и сокращенную работу с итератором:

— Обрати внимание: в правой нижней таблице нет ни зелёных, ни красных слов. Фактически 3 строки заменяются на одну:

— Выглядит шикарно. Так мне нравится гораздо больше!

— Давай посмотрим на те же примеры, что и выше, только записанные короче:

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *