{"id":18830395,"url":"https://github.com/code-flu/java-stream-api-questions-with-solution","last_synced_at":"2026-03-19T06:37:54.632Z","repository":{"id":247664742,"uuid":"826344066","full_name":"code-flu/Java-Stream-API-Questions-with-Solution","owner":"code-flu","description":"Java Stream API Questions with Solution","archived":false,"fork":false,"pushed_at":"2024-07-10T16:20:52.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-29T16:09:44.425Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-flu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-09T14:24:03.000Z","updated_at":"2024-12-22T19:11:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"1929d4ee-c246-4e78-b10c-a3d6feb516ad","html_url":"https://github.com/code-flu/Java-Stream-API-Questions-with-Solution","commit_stats":null,"previous_names":["code-flu/java-stream-api-questions-with-solution"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/code-flu/Java-Stream-API-Questions-with-Solution","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-flu%2FJava-Stream-API-Questions-with-Solution","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-flu%2FJava-Stream-API-Questions-with-Solution/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-flu%2FJava-Stream-API-Questions-with-Solution/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-flu%2FJava-Stream-API-Questions-with-Solution/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-flu","download_url":"https://codeload.github.com/code-flu/Java-Stream-API-Questions-with-Solution/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-flu%2FJava-Stream-API-Questions-with-Solution/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28802061,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T03:44:14.111Z","status":"ssl_error","status_checked_at":"2026-01-27T03:43:33.507Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-11-08T01:48:48.069Z","updated_at":"2026-01-27T04:31:43.489Z","avatar_url":"https://github.com/code-flu.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java Stream API Questions with Solution\n\n- [String Questions](#string-questions)\n- [Integer Questions](#integer-questions)\n\n## String Questions\n\n\u003cdetails\u003e\n  \u003csummary\u003eCount total number of characters in a string\u003c/summary\u003e\n\n```java\npublic static void main(String[] args)\n{\n    String str = \"hello world\";\n\n    long count = str.chars().count();\n\n    System.out.println(count);\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n \u003csummary\u003eConvert the entire string to uppercase\u003c/summary\u003e\n\n```java\npublic static void main(String[] args)\n{\n    String str = \"hello world\";\n\n    String upperCaseStr = str.chars()\n            .mapToObj(Character::toString)\n            .map(String::toUpperCase)\n            .collect(Collectors.joining());\n\n    System.out.println(upperCaseStr);\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eConvert the entire string to lowercase\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n{\n    String str = \"HELLO WORLD\";\n\n    String lowerCaseStr = str.chars()\n            .mapToObj(Character::toString)\n            .map(String::toLowerCase)\n            .collect(Collectors.joining());\n\n    System.out.println(lowerCaseStr);\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCount the number of occurrences of a specific character (e.g., 'l')\u003c/summary\u003e\n\n#### solution-1\n\n```java\n  public static void main(String[] args)\n{\n    String str = \"Hello Lost World\";\n\n    long count = str.chars()\n            .filter(ch -\u003e ch == 'L' || ch == 'l')\n            .count();\n\n    System.out.println(count);\n}\n```\n\n#### solution-2\n\n```java\n  public static void main(String[] args)\n{\n    String str = \"Hello Lost World\";\n\n    long count = str.chars()\n            .mapToObj(Character::toLowerCase)\n            .filter(ch -\u003e ch == 'l')\n            .count();\n\n    System.out.println(count);\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eReverse the order of the characters in the string\u003c/summary\u003e\n\n#### solution-1\n\n```java\npublic static void main(String[] args)\n{\n    String str = \"hello world\";\n\n    String reverseStr = str.chars()\n            .mapToObj(Character::toString)\n            .reduce((str1, str2) -\u003e str2 + str1)\n            .orElseThrow();\n\n    System.out.println(reverseStr);\n}\n```\n\n#### solution-2\n\n```java\npublic static void main(String[] args)\n{\n    String str = \"hello world\";\n\n    String reverseStr = IntStream.range(0, str.length())\n            .mapToObj(i -\u003e String.valueOf(str.charAt(str.length() - i - 1)))\n            .collect(Collectors.joining());\n\n    System.out.println(reverseStr);\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eReverse the order of the words in the string\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      String newStr = Arrays.stream(str.split(\"\\\\s+\"))\n              .reduce((string, string2) -\u003e string2 + \" \" + string)\n              .orElseThrow();\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eReverse the characters of each word in a given string while keeping the order of words intact\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"hello world\";\n\n      String newStr = Stream.of(str.split(\"\\\\s+\"))\n              .map(val -\u003e new StringBuilder(val).reverse())\n              .collect(Collectors.joining(\" \"));\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eReplace all occurrences of a specific word with another word\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"Banana is tasty, but some people prefer Banana pie.\";\n\n      String newStr = Stream.of(str.split(\"\\\\s+\"))\n              .map(val -\u003e val.equalsIgnoreCase(\"Banana\") ? \"Apple\" : val)\n              .collect(Collectors.joining(\" \"));\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCapitalize the first character of each word in the string\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"The quick brown fox jumps over the lazy dog\";\n\n      String newStr = Stream.of(str.split(\"\\\\s+\"))\n              .map(val -\u003e Character.toUpperCase(val.charAt(0)) + val.substring(1))\n              .collect(Collectors.joining(\" \"));\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eRemove all non-alphabetic characters from a string\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"Th3 qu!ck br0wn f0x jump$ 0ver the l4zy d0g\";\n\n      String sanitizeStr = str.chars()\n              .filter(Character::isLetter)\n              .mapToObj(Character::toString)\n              .collect(Collectors.joining());\n\n      System.out.println(sanitizeStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eExtract all the unique characters from the string\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"hello world\";\n\n      String newStr = str.chars()\n              .mapToObj(Character::toString)\n              .distinct().collect(Collectors.joining());\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFilter out all the vowels from the string\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"The quick brown fox jumps over the lazy dog\";\n      String vowels = \"aeiou\";\n\n      String newStr = str.chars()\n              .mapToObj(Character::toString)\n              .filter(val -\u003e !vowels.contains(val))\n              .collect(Collectors.joining());\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFind the first non-repeating character in the string\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      String newStr = str.chars()\n              .mapToObj(Character::toString)\n              .collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting()))\n              .entrySet().stream()\n              .filter(entry -\u003e entry.getValue() == 1)\n              .map(Map.Entry::getKey)\n              .findFirst().orElseThrow();\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFind the all non-repeating characters in the string\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      List\u003cString\u003e map = str.chars()\n              .mapToObj(Character::toString)\n              .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))\n              .entrySet().stream()\n              .filter(entry -\u003e entry.getValue() == 1)\n              .map(Map.Entry::getKey)\n              .collect(Collectors.toList());\n\n      System.out.println(map);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGroup characters by their frequency of occurrence\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      Map\u003cString, Long\u003e map = str.chars()\n              .mapToObj(Character::toString)\n              .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));\n\n      System.out.println(map);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003ecount the occurrences of each character and then sorts these characters based on their counts in ascending order\u003c/summary\u003e\n\n#### solution-1\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      Map\u003cString, Long\u003e map = str.chars()\n              .mapToObj(Character::toString)\n              .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))\n              .entrySet().stream()\n              .sorted(Map.Entry.comparingByValue())\n              .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -\u003e e1, LinkedHashMap::new));\n\n      System.out.println(map);\n  }\n```\n\n#### solution-2\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      Map\u003cString, Long\u003e map = new LinkedHashMap\u003c\u003e();\n      str.chars()\n              .mapToObj(Character::toString)\n              .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))\n              .entrySet().stream()\n              .sorted(Map.Entry.comparingByValue())\n              .forEachOrdered(entry -\u003e map.put(entry.getKey(), entry.getValue()));\n\n      System.out.println(map);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSplit the string into an array of words\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      String[] arr = Arrays.stream(str.split(\"\\\\s+\"))\n              .toArray(String[]::new);\n\n      System.out.println(Arrays.toString(arr));\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSort the words in the string alphabetically (ascending or descending)\u003c/summary\u003e\n\n#### ascending\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      String[] arr = Arrays.stream(str.split(\"\\\\s+\"))\n              .sorted()\n              .toArray(String[]::new);\n\n      System.out.println(Arrays.toString(arr));\n  }\n```\n\n#### descending\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      String[] arr = Arrays.stream(str.split(\"\\\\s+\"))\n              .sorted(Comparator.reverseOrder())\n              .toArray(String[]::new);\n\n      System.out.println(Arrays.toString(arr));\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFilter out words with a specific length (e.g., only words with 5 letters)\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over the lazy dog\";\n\n      String[] arr = Arrays.stream(str.split(\"\\\\s+\"))\n              .filter(val -\u003e val.length() == 5)\n              .toArray(String[]::new);\n\n      System.out.println(Arrays.toString(arr));\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFind the longest or shortest word in the string\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over a lazy dog\";\n\n      String longestWord = Arrays.stream(str.split(\"\\\\s+\"))\n              .max(Comparator.comparing(String::length)).orElseThrow();\n\n      String shortestWord = Arrays.stream(str.split(\"\\\\s+\"))\n              .min(Comparator.comparing(String::length)).orElseThrow();\n\n      System.out.println(longestWord);\n      System.out.println(shortestWord);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eJoin all the words in the string with a specific delimiter (e.g., \"-\")\u003c/summary\u003e\n\n#### solution-1\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over a lazy dog\";\n\n      String newStr = Arrays.stream(str.split(\"\\\\s+\"))\n              .collect(Collectors.joining(\"-\"));\n\n      System.out.println(newStr);\n  }\n```\n\n#### solution-2\n```java\n  public static void main(String[] args)\n  {\n      String str = \"the quick brown fox jumps over a lazy dog\";\n\n      String newStr = Arrays.stream(str.split(\"\\\\s+\"))\n              .reduce((string, string2) -\u003e string + \"-\" + string2)\n              .orElseThrow();\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003ePrint only the even-indexed characters in uppercase\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"The quick brown fox jumps over the lazy dog\";\n\n      String newStr = IntStream.range(0, str.length())\n              .filter(i -\u003e i % 2 == 0)\n              .mapToObj(str::charAt)\n              .map(Character::toUpperCase)\n              .map(String::valueOf)\n              .collect(Collectors.joining());\n\n      System.out.println(newStr);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCheck if a string is a palindrome\u003c/summary\u003e\n\n#### solution-1\n```java\n  public static void main(String[] args)\n  {\n      String str = \"level\";\n\n      boolean isPalindrome = str.chars()\n              .mapToObj(Character::toString)\n              .reduce((val, val2) -\u003e val2 + val)\n              .orElseThrow().equals(str);\n      \n      System.out.println(isPalindrome);\n  }\n```\n\n#### solution-2\n```java\n  public static void main(String[] args)\n  {\n      String str = \"level\";\n\n      boolean isPalindrome = IntStream.range(0, str.length() / 2)\n              .noneMatch(i -\u003e str.charAt(i) != str.charAt(str.length() - i - 1));\n\n      System.out.println(isPalindrome);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFind all the substrings of a specific length (e.g., all 3-letter substrings)\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n    {\n        String str = \"hellWorld\";\n        int subStrLength = 3;\n  \n        IntStream.range(0, str.length() - subStrLength + 1)\n                .mapToObj(i -\u003e str.substring(i, subStrLength + i))\n                .forEach(System.out::println);\n    }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eMap each character of \"hello world\" to its uppercase version\u003c/summary\u003e\n\n```java\n  public static void main(String[] args)\n  {\n      String str = \"helloWorld\";\n\n      Map\u003cString, String\u003e map = str.chars()\n              .mapToObj(Character::toString)\n              .collect(Collectors.toMap(\n                      Function.identity(),\n                      String::toUpperCase,\n                      (string, string2) -\u003e string2 // Merge function to handle duplicates (keep the first occurrence)\n              ));\n\n      System.out.println(map);\n  }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCalculate the average length of each word in the string\u003c/summary\u003e\n\n```java\n    public static void main(String[] args)\n    {\n        String str = \"the quick brown fox jumps over the lazy dog\";\n\n        System.out.println(Stream.of(str.split(\"\\\\s+\"))\n                .collect(Collectors.averagingInt(String::length)));\n    }\n```\n\n\u003c/details\u003e\n\n## Integer Questions\n\n\u003cdetails\u003e\n  \u003csummary\u003eFind the count/sum/average/minimum/maximum of integers\u003c/summary\u003e\n\n### solution-1\n\n```java\npublic static void main(String[] args) {\n    int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};\n\n    long count = Arrays.stream(arr).count();\n    int sum = Arrays.stream(arr).sum();\n    double average = Arrays.stream(arr).average().orElseThrow();\n    int max = Arrays.stream(arr).max().orElseThrow();\n    int min = Arrays.stream(arr).min().orElseThrow();\n\n    System.out.println(count);\n    System.out.println(sum);\n    System.out.println(average);\n    System.out.println(max);\n    System.out.println(min);\n}\n```\n\n### solution-2\n\n```java\npublic static void main(String[] args) {\n    int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};\n\n    long count = IntStream.of(arr).count();\n    int sum = IntStream.of(arr).sum();\n    double average = IntStream.of(arr).average().orElseThrow();\n    int max = IntStream.of(arr).max().orElseThrow();\n    int min = IntStream.of(arr).min().orElseThrow();\n\n    System.out.println(count);\n    System.out.println(sum);\n    System.out.println(average);\n    System.out.println(max);\n    System.out.println(min);\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFilter out even/odd numbers from the array\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) {\n    int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};\n\n    int[] even = Arrays.stream(arr)\n            .filter(val -\u003e val % 2 == 0)\n            .toArray();\n\n    int[] odd = Arrays.stream(arr)\n            .filter(val -\u003e val % 2 != 0)\n            .toArray();\n\n    System.out.println(Arrays.toString(even));\n    System.out.println(Arrays.toString(odd));\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCreate a new array with the square of each element\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) \n    {\n        int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};\n    \n        int[] squareArr = Arrays.stream(arr)\n                .map(val -\u003e val * val)\n                .toArray();\n    \n        System.out.println(Arrays.toString(squareArr));\n    }\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFilter elements greater than a specific value (e.g., greater than 5)\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) {\n    int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};\n    \n    int[] filteredArr = Arrays.stream(arr)\n            .filter(val -\u003e val \u003e 5)\n            .toArray();\n    \n    System.out.println(Arrays.toString(filteredArr));\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFind the product of all elements in the array\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) \n{\n    int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};\n\n    int product = Arrays.stream(arr)\n            .reduce((left, right) -\u003e left * right)\n            .orElseThrow();\n\n    System.out.println(product);\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSort the array in ascending order\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) \n{\n    int[] arr = {2, 9, 4, 3, 6, 8, 1, 7};\n\n    int[] sortedArr = Arrays.stream(arr)\n            .sorted().toArray();\n\n    System.out.println(Arrays.toString(sortedArr));\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSort the array in descending order\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) \n{\n    int[] arr = {2, 9, 4, 3, 6, 8, 1, 7};\n\n    Integer[] sortedArr = Arrays.stream(arr)\n            .boxed()\n            .sorted(Comparator.reverseOrder())\n            .toArray(Integer[]::new);\n\n    System.out.println(Arrays.toString(sortedArr));\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGet all the elements in the array that are unique (remove duplicates)\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) \n{\n    int[] arr = {2, 9, 2, 3, 3, 8, 1, 7};\n\n    int[] sortedArr = Arrays.stream(arr)\n            .distinct()\n            .toArray();\n\n    System.out.println(Arrays.toString(sortedArr));\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eArray of duplicate elements\u003c/summary\u003e\n\n### solution-1\n```java\npublic static void main(String[] args) \n{\n    int[] arr = {9, 9, 2, 3, 3, 8, 1, 2};\n\n    int[] duplArr = Arrays.stream(arr)\n            .boxed()\n            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))\n            .entrySet().stream()\n            .filter(entry -\u003e entry.getValue() \u003e 1)\n            .mapToInt(Map.Entry::getKey)\n            .toArray();\n\n    System.out.println(Arrays.toString(duplArr));\n}\n```\n\n### solution-2\n```java\npublic static void main(String[] args) \n{\n    int[] arr = {9, 9, 2, 3, 3, 8, 1, 2};\n\n    Set\u003cInteger\u003e set = new HashSet\u003c\u003e();\n\n    int[] duplArr = Arrays.stream(arr)\n            .filter(val -\u003e !set.add(val))\n            .toArray();\n\n    System.out.println(Arrays.toString(duplArr));\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003ePartition the array into two lists: one with even numbers and another with odd numbers\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) \n{\n    int[] arr = {0, 1, 2, 3, 4, 5, 6, 7};\n\n    Map\u003cBoolean, List\u003cInteger\u003e\u003e evenAndOdd = Arrays.stream(arr)\n            .boxed()\n            .collect(Collectors.partitioningBy(val -\u003e val % 2 == 0));\n\n    List\u003cInteger\u003e evenLists = evenAndOdd.get(true);\n    List\u003cInteger\u003e oddLists = evenAndOdd.get(false);\n\n    System.out.println(evenLists);\n    System.out.println(oddLists);\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGroup elements by their remainder when divided by 3?\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) {\n    int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};\n\n    Map\u003cInteger, List\u003cInteger\u003e\u003e map = Arrays.stream(arr)\n            .boxed()\n            .collect(Collectors.groupingBy(val -\u003e val % 3));\n\n    System.out.println(map);\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGroup each element with their remainder when divided by 3?\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) \n{\n    int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};\n\n    Map\u003cInteger, Integer\u003e map = Arrays.stream(arr)\n            .boxed()\n            .collect(Collectors.toMap(Function.identity(), val -\u003e val % 3));\n\n    System.out.println(map);\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eCalculate sum of numeric values in a string\u003c/summary\u003e\n\n```java\npublic static void main(String[] args) \n{\n    String str = \"38457\";\n\n    int sum = str\n            .chars()\n            .mapToObj(Character::getNumericValue)\n            .mapToInt(Integer::intValue).sum();\n\n    System.out.println(sum);\n}\n```\n\u003c/details\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-flu%2Fjava-stream-api-questions-with-solution","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-flu%2Fjava-stream-api-questions-with-solution","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-flu%2Fjava-stream-api-questions-with-solution/lists"}