Proposal: Add getRandom() default method to java.util.List
Daniel Tavares
cetr1n at gmail.com
Sat Aug 23 19:36:51 UTC 2025
Dear OpenJDK community,
I’d like to propose the addition of a getRandom() default method to the
java.util.List interface.
As a Java developer with over 15 years of experience, I’ve often found
myself needing to retrieve a random element from a list. While this can be
achieved using ThreadLocalRandom or by shuffling the list, these approaches
require boilerplate code and are not immediately intuitive—especially for
newcomers to the language.
*Motivation*
Retrieving a random element from a list is a common task in many domains:
- Games and simulations
- Educational tools
- Random sampling in data processing
- Lightweight testing scenarios
Adding a default method like getRandom() would improve readability and
reduce friction for developers, particularly those learning Java or working
on rapid prototyping.
*Proposed Method*
default T getRandom() {
if (isEmpty()) return null;
int index = ThreadLocalRandom.current().nextInt(size());
return get(index);
}
Alternatively, the method could throw NoSuchElementException if the list is
empty, depending on what the community considers more idiomatic.
*Benefits*
- *Improved developer experience*: Simplifies a common use case.
- *Better readability*: Expresses intent directly.
- *Minimal impact*: Can be added as a default method without breaking
existing implementations.
- *Alignment with modern Java*: Leverages default methods introduced in
Java 8.
I understand that additions to core interfaces are considered carefully,
and I welcome feedback on whether this idea aligns with the design
philosophy of the Java Collections Framework.
Thank you for your time and consideration.
Best regards,
Daniel Perin Tavares
Curitiba, Brazil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/core-libs-dev/attachments/20250823/5fc7dd1f/attachment-0001.htm>
More information about the core-libs-dev
mailing list