Hi Daniel, can you explain why `list.stream().findAny()` does not fulfill your needs? This also returns a random element and is also very concise.
-Chen Liang ________________________________ From: core-libs-dev <core-libs-dev-r...@openjdk.org> on behalf of Daniel Tavares <cet...@gmail.com> Sent: Saturday, August 23, 2025 2:36 PM To: core-libs-dev@openjdk.org <core-libs-dev@openjdk.org> Subject: Proposal: Add getRandom() default method to java.util.List 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