Java : Collection with Examples

Collection (Java SE 21 & JDK 21) with Examples.
You will find code examples on most Collection<E> methods.


Summary

The root interface in the collection hierarchy. A collection represents a group of objects, known as its elements. Some collections allow duplicate elements and others do not. Some are ordered, and others are unordered.

Class diagram

final Collection<String> collection = new ArrayList<>();
collection.add("aaa");
collection.add("bbb");
collection.add("ccc");

System.out.println(collection); // [aaa, bbb, ccc]

collection.remove("bbb");

System.out.println(collection); // [aaa, ccc]
final Collection<Integer> collection = Set.of(111, 222, 333);

System.out.println(collection); // [222, 111, 333]
System.out.println(collection.size()); // 3

Methods

boolean add (E e)

Ensures that this collection contains the specified element (optional operation).

final Collection<String> collection = new ArrayList<>();
System.out.println(collection.add("aaa")); // true
System.out.println(collection.add("bbb")); // true
System.out.println(collection.add("bbb")); // true

System.out.println(collection); // [aaa, bbb, bbb]
final Collection<String> collection = new HashSet<>();
System.out.println(collection.add("aaa")); // true
System.out.println(collection.add("bbb")); // true
System.out.println(collection.add("bbb")); // false

System.out.println(collection); // [aaa, bbb]

boolean addAll (Collection<? extends E> c)

Adds all of the elements in the specified collection to this collection (optional operation).

final Collection<String> collection = new ArrayList<>();

final var list1 = List.of("aaa", "bbb");
final var list2 = List.of("bbb", "ccc");
final var list3 = List.of("ccc");

System.out.println(collection.addAll(list1)); // true
System.out.println(collection); // [aaa, bbb]

System.out.println(collection.addAll(list2)); // true
System.out.println(collection); // [aaa, bbb, bbb, ccc]

System.out.println(collection.addAll(list3)); // true
System.out.println(collection); // [aaa, bbb, bbb, ccc, ccc]
final Collection<String> collection = new HashSet<>();

final var set1 = Set.of("aaa", "bbb");
final var set2 = Set.of("bbb", "ccc");
final var set3 = Set.of("ccc");

System.out.println(collection.addAll(set1)); // true
System.out.println(collection); // [aaa, bbb]

System.out.println(collection.addAll(set2)); // true
System.out.println(collection); // [aaa, ccc, bbb]

System.out.println(collection.addAll(set3)); // false
System.out.println(collection); // [aaa, ccc, bbb]

void clear ()

Removes all of the elements from this collection (optional operation).

final Collection<String> collection = new ArrayList<>();
collection.add("aaa");
collection.add("bbb");
collection.add("ccc");

System.out.println(collection); // [aaa, bbb, ccc]

collection.clear();

System.out.println(collection); // []
System.out.println(collection.isEmpty()); // true

boolean contains (Object o)

Returns true if this collection contains the specified element.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

System.out.println(collection.contains("aaa")); // true
System.out.println(collection.contains("bbb")); // true
System.out.println(collection.contains("XXX")); // false

boolean containsAll (Collection<?> c)

Returns true if this collection contains all of the elements in the specified collection.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final var list1 = List.of("aaa", "bbb");
System.out.println(collection.containsAll(list1)); // true

final var list2 = List.of("bbb", "XXX");
System.out.println(collection.containsAll(list2)); // false

final var list3 = List.of("XXX", "YYY");
System.out.println(collection.containsAll(list3)); // false

boolean equals (Object o)

Compares the specified object with this collection for equality.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final var list1 = List.of("aaa", "bbb");
System.out.println(collection.equals(list1)); // false

final var list2 = List.of("aaa", "bbb", "ccc");
System.out.println(collection.equals(list2)); // true

final var list3 = List.of("XXX", "YYY");
System.out.println(collection.equals(list3)); // false
final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final var set = Set.of("aaa", "bbb", "ccc");
System.out.println(collection.equals(set)); // false

int hashCode ()

Returns the hash code value for this collection.

final Collection<String> collection1 = List.of("aaa", "bbb", "ccc");
System.out.println(collection1.hashCode()); // 95709313

final Collection<Integer> collection2 = Set.of(111, 222, 333);
System.out.println(collection2.hashCode()); // 666

boolean isEmpty ()

Returns true if this collection contains no elements.

final Collection<String> collection = new ArrayList<>();

System.out.println(collection); // []
System.out.println(collection.size()); // 0
System.out.println(collection.isEmpty()); // true

collection.add("aaa");
System.out.println(collection); // [aaa]
System.out.println(collection.size()); // 1
System.out.println(collection.isEmpty()); // false

collection.add("bbb");
System.out.println(collection); // [aaa, bbb]
System.out.println(collection.size()); // 2
System.out.println(collection.isEmpty()); // false

Iterator<E> iterator ()

Returns an iterator over the elements in this collection.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final var iterator = collection.iterator();

System.out.println("-- forEachRemaining --");
iterator.forEachRemaining(System.out::println);

// Result
// ↓
//-- forEachRemaining --
//aaa
//bbb
//ccc

default Stream<E> parallelStream ()

Returns a possibly parallel Stream with this collection as its source.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final var stream = collection.parallelStream();
System.out.println(stream.isParallel()); // true

System.out.println("-- forEach --");
stream.forEach(s -> {
    final var id = Thread.currentThread().threadId();
    System.out.println(s + " : (thread id = " + id + ")");
});

// Result
// ↓
//-- forEach --
//aaa : (thread id = 32)
//ccc : (thread id = 33)
//bbb : (thread id = 1)

boolean remove (Object o)

Removes a single instance of the specified element from this collection, if it is present (optional operation).

final Collection<String> collection = new ArrayList<>();
collection.add("aaa");
collection.add("bbb");
collection.add("ccc");

System.out.println(collection); // [aaa, bbb, ccc]

System.out.println(collection.remove("aaa")); // true
System.out.println(collection); // [bbb, ccc]

System.out.println(collection.remove("bbb")); // true
System.out.println(collection); // [ccc]

System.out.println(collection.remove("XXX")); // false
System.out.println(collection); // [ccc]

boolean removeAll (Collection<?> c)

Removes all of this collection's elements that are also contained in the specified collection (optional operation).

final var src = List.of("aaa", "bbb", "ccc");

{
    final Collection<String> collection = new ArrayList<>(src);
    System.out.println(collection); // [aaa, bbb, ccc]

    final var list = List.of("aaa", "bbb");
    System.out.println(collection.removeAll(list)); // true
    System.out.println(collection); // [ccc]
}
{
    final Collection<String> collection = new ArrayList<>(src);
    System.out.println(collection); // [aaa, bbb, ccc]

    final var list = List.of("XXX", "YYY");
    System.out.println(collection.removeAll(list)); // false
    System.out.println(collection); // [aaa, bbb, ccc]
}
{
    final Collection<String> collection = new ArrayList<>(src);
    System.out.println(collection); // [aaa, bbb, ccc]

    final var list = List.of("aaa", "bbb", "ccc", "XXX");
    System.out.println(collection.removeAll(list)); // true
    System.out.println(collection); // []
}

default boolean removeIf (Predicate<? super E> filter)

Removes all of the elements of this collection that satisfy the given predicate.

final Collection<String> collection = new ArrayList<>();
collection.add("aaa");
collection.add("BBB");
collection.add("ccc");
collection.add("DDD");

System.out.println(collection); // [aaa, BBB, ccc, DDD]

final var ret = collection.removeIf(s -> {
    // Checks if the string is uppercase.
    return s.equals(s.toUpperCase());
});

System.out.println(ret); // true
System.out.println(collection); // [aaa, ccc]
final Collection<String> collection = new ArrayList<>();
collection.add("aaa");
collection.add("bbb");

System.out.println(collection); // [aaa, bbb]

final var ret = collection.removeIf(s -> s.equals(s.toUpperCase()));

System.out.println(ret); // false
System.out.println(collection); // [aaa, bbb]

boolean retainAll (Collection<?> c)

Retains only the elements in this collection that are contained in the specified collection (optional operation).

final var src = List.of("aaa", "bbb", "ccc");

{
    final Collection<String> collection = new ArrayList<>(src);
    System.out.println(collection); // [aaa, bbb, ccc]

    final var list = List.of("aaa", "bbb");
    System.out.println(collection.retainAll(list)); // true
    System.out.println(collection); // [aaa, bbb]
}
{
    final Collection<String> collection = new ArrayList<>(src);
    System.out.println(collection); // [aaa, bbb, ccc]

    final var list = List.of("XXX", "YYY");
    System.out.println(collection.retainAll(list)); // true
    System.out.println(collection); // []
}
{
    final Collection<String> collection = new ArrayList<>(src);
    System.out.println(collection); // [aaa, bbb, ccc]

    final var list = List.of("aaa", "bbb", "ccc", "XXX");
    System.out.println(collection.retainAll(list)); // false
    System.out.println(collection); // [aaa, bbb, ccc]
}

int size ()

Returns the number of elements in this collection.

Please see isEmpty().

default Spliterator<E> spliterator ()

Creates a Spliterator over the elements in this collection.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final var spliterator = collection.spliterator();

System.out.println("-- forEachRemaining --");
spliterator.forEachRemaining(System.out::println);

// Result
// ↓
//-- forEachRemaining --
//aaa
//bbb
//ccc

default Stream<E> stream ()

Returns a sequential Stream with this collection as its source.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final var stream = collection.stream();
System.out.println(stream.isParallel()); // false

System.out.println("-- forEach --");
stream.forEach(System.out::println);

// Result
// ↓
//-- forEach --
//aaa
//bbb
//ccc

Object[] toArray ()

Returns an array containing all of the elements in this collection.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final Object[] ret = collection.toArray();
System.out.println(Arrays.toString(ret)); // [aaa, bbb, ccc]

default <T> T[] toArray (IntFunction<T[]> generator)

Returns an array containing all of the elements in this collection, using the provided generator function to allocate the returned array.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

final String[] ret = collection.toArray(String[]::new);
System.out.println(Arrays.toString(ret)); // [aaa, bbb, ccc]

<T> T[] toArray (T[] a)

Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array.

final Collection<String> collection = List.of("aaa", "bbb", "ccc");
System.out.println(collection); // [aaa, bbb, ccc]

{
    final String[] ret = collection.toArray(new String[0]);
    System.out.println(Arrays.toString(ret)); // [aaa, bbb, ccc]
}
{
    final String[] array = new String[collection.size()];
    System.out.println(Arrays.toString(array)); // [null, null, null]

    final var ret = collection.toArray(array);
    System.out.println(Arrays.toString(ret)); // [aaa, bbb, ccc]

    System.out.println(Arrays.toString(array)); // [aaa, bbb, ccc]
}

Methods declared in Iterable

forEach

Please see the link below.


Related posts

To top of page