{"id":15474758,"url":"https://github.com/andyatkinson/java-stuff","last_synced_at":"2026-05-15T05:35:42.137Z","repository":{"id":53282573,"uuid":"142592952","full_name":"andyatkinson/java-stuff","owner":"andyatkinson","description":"Junk drawer of Java code/scripts/tests for learning","archived":false,"fork":false,"pushed_at":"2021-03-31T21:41:31.000Z","size":10,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-19T02:14:45.550Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andyatkinson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-27T15:16:07.000Z","updated_at":"2020-03-31T17:41:00.000Z","dependencies_parsed_at":"2022-08-28T15:00:37.953Z","dependency_job_id":null,"html_url":"https://github.com/andyatkinson/java-stuff","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyatkinson%2Fjava-stuff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyatkinson%2Fjava-stuff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyatkinson%2Fjava-stuff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyatkinson%2Fjava-stuff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andyatkinson","download_url":"https://codeload.github.com/andyatkinson/java-stuff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241404209,"owners_count":19957650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T03:03:57.820Z","updated_at":"2026-05-15T05:35:42.034Z","avatar_url":"https://github.com/andyatkinson.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Java Playground\n\n### Build\n\nThis project was built with Java 8 using IntelliJ IDEA.\n\nThis is a Maven project. \n\n### Command line\n\n```java\nmvn exec:java -Dexec.mainClass=\"Playground\"\n```\n\n\nExecute in parallel, specifying number of threads.\n\n```java\nmvn exec:java -Djava.util.concurrent.ForkJoinPool.common.parallelism=4 -Dexec.mainClass=\"Parallel\"\n\n```\n\n\n### Tips\n\nThese will require Java 8+\n\n`javarepl`\n\n`Objects.requireNonNull()`\n\n* Use this instead of doing manual null checks.\n\n`Playground.frequency(Collection c, Object o)`\n\n* Count number of occurrences of object in collection\n\n`UUID.randomUUID()`\n\n* Generate a random UUID for tests\n\n`Optional.ifPresent()`\n\n* Use a functional programming style and execute a block when object is present\n\n### Immutables\n\n\u003chttps://dzone.com/articles/immutability-with-builder-design-pattern\u003e\n\n`stream()`\n\n\u003e A sequence of elements supporting sequential and parallel aggregate operations.\n\n* [Streams javadoc](https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html)\n* [Streams tutorial](https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/)\n\n`filter`, `map`, `sorted` are intermediate operations, where `forEach` is terminal.\n\nStreams may be iterated in parallel.\n\n`Collectors.groupingBy`\n`Collectors.toMap`\n\n\n### Lists\n\n```java\nfinal ArrayList\u003cString\u003e list = new ArrayList(Arrays.asList(\"Ryan\", \"Julie\", \"Bob\"));\n\nfinal List a = new ArrayList(Arrays.asList(1,2,3));\n\nImmutableList.of(1, 2, 3);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandyatkinson%2Fjava-stuff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandyatkinson%2Fjava-stuff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandyatkinson%2Fjava-stuff/lists"}