Thanks Johannes, I just want to improve and contribute to the language. Today, java.util.Random is useful and already helps me a lot. If there's no way to insert the function, that's okay.
Best regards, Daniel Perin Tavares Em seg., 25 de ago. de 2025 às 17:51, Johannes Döbler < j...@civilian-framework.org> escreveu: > Hi Daniel, > > what about providing List.getRandom() as an extension method [1] in your > projects? > > Best regards > Johannes > > [1] > https://github.com/manifold-systems/manifold/blob/master/manifold-deps-parent/manifold-ext/README.md > > > > On 23/08/2025 21:36, Daniel Tavares wrote: > > 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 > > >