Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

pi/agent/skills/optional/java/java-sequenced-collections/SKILL.md

Raw
Rendered preview

name: java-sequenced-collections description: "Use when Java 21+ code needs ordered collection APIs: first/last elements, reverse views, or encounter-order maps/sets." license: CC-BY-4.0-summary compatibility: "JDK 21+" metadata: sources: - "https://openjdk.org/jeps/431"

Sequenced Collections

Use for Sequenced Collections work from JEP 431 when targeting JDK 21+.

When active

  • Accept SequencedCollection instead of List/Deque when only encounter order matters.
  • Use SequencedSet and SequencedMap for ordered set/map views and first/last entries.
  • Use reversed() for a reverse-ordered view, not a copy.

Pitfalls

  • Empty first/last operations throw NoSuchElementException.
  • Some implementations throw UnsupportedOperationException for mutating first/last operations.
  • Use sequencedKeySet()/sequencedValues()/sequencedEntrySet() for map views.

Examples

Read examples/jep-431.md for JEP-derived snippets.

References

---
name: java-sequenced-collections
description: "Use when Java 21+ code needs ordered collection APIs: first/last elements, reverse views, or encounter-order maps/sets."
license: CC-BY-4.0-summary
compatibility: "JDK 21+"
metadata:
  sources:
    - "https://openjdk.org/jeps/431"
---

# Sequenced Collections

Use for **Sequenced Collections** work from [JEP 431](https://openjdk.org/jeps/431) when targeting JDK 21+.

## When active

- Accept `SequencedCollection` instead of `List`/`Deque` when only encounter order matters.
- Use `SequencedSet` and `SequencedMap` for ordered set/map views and first/last entries.
- Use `reversed()` for a reverse-ordered view, not a copy.

## Pitfalls

- Empty first/last operations throw `NoSuchElementException`.
- Some implementations throw `UnsupportedOperationException` for mutating first/last operations.
- Use `sequencedKeySet()`/`sequencedValues()`/`sequencedEntrySet()` for map views.

## Examples

Read `examples/jep-431.md` for JEP-derived snippets.

## References

- https://openjdk.org/jeps/431