From ca1cf088fa3ba92c75747400eeb503e347d834bc Mon Sep 17 00:00:00 2001 From: ovidiu-mihai98 <138307181+ovidiumihaitacu@users.noreply.github.com> Date: Wed, 30 Aug 2023 19:58:17 +0300 Subject: [PATCH] [BAEL-6810] - Sequenced Collections in Java 21 --- core-java-modules/core-java-21/README.md | 1 + core-java-modules/core-java-21/pom.xml | 34 +++++++++++++++++++ .../collections/SequencedCollection.java | 15 ++++++++ .../sequenced/collections/SequencedMap.java | 18 ++++++++++ .../sequenced/collections/SequencedSet.java | 7 ++++ 5 files changed, 75 insertions(+) create mode 100644 core-java-modules/core-java-21/README.md create mode 100644 core-java-modules/core-java-21/pom.xml create mode 100644 core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedCollection.java create mode 100644 core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedMap.java create mode 100644 core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedSet.java diff --git a/core-java-modules/core-java-21/README.md b/core-java-modules/core-java-21/README.md new file mode 100644 index 0000000000..c63f3b360b --- /dev/null +++ b/core-java-modules/core-java-21/README.md @@ -0,0 +1 @@ +## Relevant Articles \ No newline at end of file diff --git a/core-java-modules/core-java-21/pom.xml b/core-java-modules/core-java-21/pom.xml new file mode 100644 index 0000000000..83b2b1c858 --- /dev/null +++ b/core-java-modules/core-java-21/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + core-java-21 + core-java-21 + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedCollection.java b/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedCollection.java new file mode 100644 index 0000000000..58f5dbd014 --- /dev/null +++ b/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedCollection.java @@ -0,0 +1,15 @@ +package com.baeldung.sequenced.collections; + +/* +interface SequencedCollection extends Collection { + // new method + SequencedCollection reversed(); + // methods promoted from Deque + void addFirst(E); + void addLast(E); + E getFirst(); + E getLast(); + E removeFirst(); + E removeLast(); +} + */ diff --git a/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedMap.java b/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedMap.java new file mode 100644 index 0000000000..925449a090 --- /dev/null +++ b/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedMap.java @@ -0,0 +1,18 @@ +package com.baeldung.sequenced.collections; + +/* +interface SequencedMap extends Map { + // new methods + SequencedMap reversed(); + SequencedSet sequencedKeySet(); + SequencedCollection sequencedValues(); + SequencedSet> sequencedEntrySet(); + V putFirst(K, V); + V putLast(K, V); + // methods promoted from NavigableMap + Entry firstEntry(); + Entry lastEntry(); + Entry pollFirstEntry(); + Entry pollLastEntry(); +} + */ \ No newline at end of file diff --git a/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedSet.java b/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedSet.java new file mode 100644 index 0000000000..a8fb4caa1f --- /dev/null +++ b/core-java-modules/core-java-21/src/main/java/com/baeldung/sequenced/collections/SequencedSet.java @@ -0,0 +1,7 @@ +package com.baeldung.sequenced.collections; + +/* +interface SequencedSet extends Set, SequencedCollection { + SequencedSet reversed(); // covariant override +} + */