Distinct Character Count Java StreamIn the world of Java programming, there are numerous scenarios where you might need to count the distinct characters in a given string. Whether we are working on a text analysis tool, a word game, or any application that deals with text data, knowing how to calculate the distinct character count efficiently is a valuable skill. Java Streams provide an elegant and concise way to achieve this. In this section, we will explore different methods for counting distinct characters in a string using Java Streams, complete with code examples and detailed explanations. Method 1: Using Streams and SetsOne of the simplest and most efficient ways to count distinct characters in a string is by leveraging Java Streams and a Set. Here's a step-by-step implementation: DistinctCharacterCountExample.java Output: Distinct Character Count: 9 Explanation We convert the input string into a stream of characters using inputString.chars(). Then, we map each character's Unicode value back to a char to obtain a stream of characters using .mapToObj(c -> (char) c). We collect these characters into a Set using Collectors.toSet(), ensuring that only distinct characters are retained. Finally, we calculate the size of the Set, which gives us the count of distinct characters. Method 2: Using Streams with Distinct and CountJava Streams provide a convenient distinct method to filter out duplicate elements. We can use this method in combination with count to calculate the distinct character count. DistinctCharacterCountExample.java Output: Distinct Character Count: 9 Explanation We first convert the input string to a character stream and then map it to a stream of Character objects. We apply the distinct method to keep unique characters in the stream. Finally, we use the count method to get the count of distinct characters. Method 3: Using Collectors.toCollection() with a LinkedHashSetAnother approach is to use the Collectors.toCollection() method with a LinkedHashSet, which maintains the order of insertion while ensuring distinct elements. DistinctCharacterCountExample.java Output: Distinct Character Count: 9 Explanation We convert the input string to a character stream and map it to a stream of Character objects. We use Collectors.toCollection(LinkedHashSet::new) to collect the distinct characters. It automatically maintains the insertion order. We obtain the count by getting the size of the LinkedHashSet. Method 3: Counting Distinct Characters with Collectors.groupingBy() MethodDistinctCharacterCountExample.java Output: Distinct Character Count: 11 Explanation Convert the input string to a character stream and then map it to a stream of Character objects. Use Collectors.groupingBy() to group the characters based on their identity (i.e., the character itself) and count them using Collectors.counting(). It results in a map where the keys are distinct characters, and the values are the counts of each character. Finally, we calculate the size of the map to get the count of distinct characters. ConclusionCounting distinct characters in a string is a common task in Java programming, and Java Streams provide elegant solutions to tackle this problem efficiently. The methods presented here allows us to count distinct characters in a concise and readable manner, making your code more maintainable and expressive. Whether you prefer using Set, distinct, or LinkedHashSet, we have multiple options to choose from, each offering distinct advantages in different scenarios. Next TopicEOFException in Java |
We provides tutorials and interview questions of all technology like java tutorial, android, java frameworks
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India