Java 8 🔥 | Programming Interview Questions & Answers | Stream API | Java Techie
Вставка
- Опубліковано 10 лют 2025
- In this Tutorial We will discuss commomly asked coding & programme on java 8 stream api with hands-on coding
#JavaTechie #Java8 #Coding
java 8 playlist :
• Lambda Expression & Fu...
Spring boot microservice Live course Just started (Recordings available)
Hurry-up & Register today itself!
COURSE LINK : javatechie5246...
PROMO CODE : Java40
GitHub:
github.com/Jav...
Blogs:
/ javatechie
Facebook:
/ javatechie
guys if you like this video please do subscribe now and press the bell icon to not miss any update from Java Techie
Disclaimer/Policy:
--------------------------------
Note : All uploaded content in this channel is mine and its not copied from any community ,
you are free to use source code from above mentioned GitHub account
Hi Bro..Thanks a lot..watched ur videos and really more helpful
Two alternate ways to find the second highest number :
Without using boxed()
1. Integer secondHighest1 = Arrays.stream(num).sorted().skip(num.length - 2).findFirst().getAsInt();
With using boxed()
2. Optional secondHighest2 = Arrays.stream(num).boxed().sorted().skip(num.length - 2).findFirst();
and then print secondHighest2.get()
condition -> array should not be empty and must contain at least 2 elements
Im springboot coder. Plz continue these series. Highly appreciated your work.
34:30 using map() is redundant
List oneStartingNumberLists = Arrays.stream(nums)
.boxed()
.filter(n -> n.toString().startsWith("1"))
.collect(Collectors.toList());
Since it is boxed() meaning Integer can be converted into string using toString()
Thanks @javatechie excellent content, but for this problem, this is much simpler //find longest string from given array
String longestword = strings.stream().max((s1,s2)->s1.length()-s2.length()).get();
Because of you sir i cracked couple interviews, when I started looking for a new job, I just watching your video again and revising the concept
One of the best UA-cam channel for learner
Lot's of respect sir..
Glad to hear this Amol 😍. Congratulations for your achievements and keep learning 😃
thank you so much Sir for providing such knowledge for free😇
very very good and useful bro, this is called spoon feeding 😄😍😍😍 love it
Very useful lecture for beginners. Produce more such interview related coding questions which involves 0 to 6/7 years. We're here to consume 😋
Sure Aadi 😜. Then UA-cam is Broker
@@Javatechie No youtube is kafka server
@@Javatechie
Much needed, thank you.
@@azharnawaz1020broker is Server only man
Great Explanation Sir, Thank you so much!
Awesome video, specially how he showed groupingBy() example and trick to solve many interview questions using this base technique where cosmetic modifications do wonders. The other thing is that he shown one example second largest/lowest and largest/lowest element in list but there is one additional thing is required which is to add distinct() keyword in stream otherwise if there are duplicate largest/lowest number then it would not work
Thanks buddy 😀. Yes distinct is required you are right
Most Interviewed questions on Stream APIs. Best channel out there as I said earlier also. Keep doing this great work man. Thanks a lot❤
For second highest number program,
if
int[] numbers = {5,9,11,2,8,21,21,1};
Then your logic will fail because...in reverse order it will show [21,21,11,9,8,5,1].....but second highest number is 11....but it will show 21.
I think we need to add one more logic for remove duplicacy again then only it will show 11.
int[] numbers = {5,9,11,2,8,21,21,1};
Integer SecondHighestElement = Arrays.stream(numbers).boxed()
.collect(Collectors.toSet()).stream()
.sorted(Comparator.reverseOrder())
.skip(1)
.findFirst()
.get();
System.out.println(SecondHighestElement);
This will work.
@Javatechie
simple solution for finding nth largest string .String longestStrList=Arrays.stream(str1)
.sorted((s1, s2) -> s2.length() - s1.length())
.skip(n-1)
.findFirst()
.orElse("");
Awesome man let me try this .
Thanks, just what I needed for my upcoming interview.
Really Useful and covered most of the repeatated questions on Java 8 interviews...Thanks Basant😍
thank you for teaching how to use stream API effectively
Simple and to the point coverage of different stream related questions. Thanks for your efforts.
It's just perfect. Thank you. Please keep going.
wow excellent.... Thank you very much @Java Techie, many times asked this questions & now I can answer.
Your really doing amazing job, with no doubt about content I can trust n watch and get quality content , thank you and please continue doing this great job.😊
Great Video 🙌Thanks for sharing 👍
Please keep sharing similar coding challenges on Java8+
That’s very well covered . 👏one request Basant if u can create videos on Microservices interview questions in detailed with examples will be helpful for many of us . Thanks for all work you are doing so far ❤🎉
Yes buddy it's in a queue. Will upload within a month
@@Javatechieyes we are waiting
Excellent Video Basant. Keep Interviews Videos like this coming.
Ur content are always unique , Very Helpful set of Question and answers
Very informative and useful video for interview. Thanks
Best ever java coding stream 8 video .
Please provide more examples.. It really helps!!.. Continue doing this as a series.. thanks a lot
Excellent ! Please bring in some more practical problem solving examples in JAVA. This is very rare high quality stuff
Thanks buddy i will
@@Javatechie Please create a java 8 code to find sub string with maximum repeating characters
Nice one quick recall before the interview.
my guruji is always the best🙏🙏🙏
21:10 As we're using an optional class can we use it like below
String firstNonRepeat= Arrays.stream(name.split(""))
.collect(Collectors.groupingBy(Function.identity(),LinkedHashMap::new,Collectors.counting()))
.entrySet().stream()
.filter(t -> t.getValue()==1)
.map(Map.Entry::getKey)
.findFirst()
.orElse("No such element found");
Yes , when we use findFirst() it returns an optional container so we can use the orElse method.
Max length str solution ----> Arrays.asList(strArray).stream().max(Comparator.comparing(String::length)).get();
thank you very useful lecture.
Very informative and helpful
Hello Basant,
For unique elements we can use distinct() method function also right, correct me If I am wrong thinking.
String name = "ILoveJavaTechie";
String[] split1 = name.split("");
Stream distinct = Arrays.stream(split1).distinct();
System.out.println("FoundDuplicate elements " + "" + distinct.collect(Collectors.toList()));
This will give you a unique element not duplicate
Hi Sir, This video is very much useful. please make such video more frequent. 🙏
Thanks 👍 please make one more videos on coding questions
really it is great video for clear the interview and getting more knowledge by way of your teaching . Thank you very much sir.
Thanks Vinoth 🤗
Simply Great video brother, Thank you
Good video.very useful for coding interviews.
Very useful video 🙏please make more videos!
For Duplicate elements, we can use Collections.frequency(1,x)....By using this we can easily filter out duplicate.
Then why you took map and all ?
String s=input.toLowerCase();
char ch[]= s.toCharArray();
List list = new ArrayList();
for(char c:ch)
{
list.add(c);
}
list.stream().filter(t->Collections.frequency(1,x)>1).collect(Collectors.toList()).forEach(System.out::println);
@Javatechie
But it is slowest one
Need more such coding videos ... coz most of the people only uploading theory videos not practical .
I am waiting from long time. Thanks
The purpose of boxed is not autoboxing
It just converts IntStream to Stream
Second Highest, why cant be this... 25:00
Integer res = Arrays.stream(numbers).boxed().sorted().collect(Collectors.toList()).get(numbers.length - 2);
Yes but your solution can handle exception FindFirst :)
Because we don't need to collect to the list
As well as we can return default value like orelse
superb explanation.
Very informative video
Very nice explained
hey stream dont use your brain and use hashmap...listen to basant sir :) explaining with humor really nice sir. Thanks
🤪🤪🤪🤪
Appreciated 😊🙏
very useful sir
Thanks for this video ❤
Thank You Java Techie 😊
really helpful, thank you
Second question find duplicate elements from a string
List strList = Arrays.asList(result);
List dupElements = strList.stream().filter(e->Collections.frequency(strList, e)>1).distinct().collect(Collectors.toList());
System.out.println(dupElements);
Informatic session
Sir they are saying not to use .Get() for optionals in reactive programs. Could u plz say whats the best way to handle optopnals in reactive way? ❤ you sir.
Check isEmpty or offNullable in optional then get the object that is the correct way to deal with optional
@@Javatechie thanks a lot sir.
Great Video !! Very well explain each answer. Where can we find the source code,am not able to see in git repo
GitHub link mentioned in the video description
Hi @Javatechie, in 3rd question for finding 1st non repeat element from the String, if we provide new LinkedHashMap() instead of LinkedHashMap constructor refferance its giving compilation error, Do u know why?
No we need to give a new object of LinkedIn hashmap . Pass as constructor or method reference it's upto you
Will these be asked for 5 years candidate. Please share as well some other questions as well basant, thank you ❤❤❤ to your channel
Yes buddy programming questions is common for any experience
Thanks 😊
Thanks Basant
Sir please make video on checkmarks for intellij
Okay i will do that
Very useful
How you are exploring these methods. What strategy you will use while exploring any new technology.
In my opinion documentation and there are also good books out there
Practice a few more basic programs and then try to convert it to java 8 stream and play with it .
You will explore more and more once you start playing with it .
To be fair i don't use documentation to learn rather i tried to understand various scenarios by debugging source code
1st question was asked to me in TechMahindra interview.
For what much experience
Nice Video..!!...Appreciate if you can you please create a playlist of Java where time complexity and space complexity is maintained.
THANK YOU SO MUCH
Please continue the Kafka series .eagerly waiting for that .
Yes buddy next weekend i will upload 2 videos on Kafka.
@@Javatechie please complete the series . Waiting since long for your Kafka series .❤️
if Array like this- Integer arr[] = {10, 5, 8, 22, 30, 30, 2}; then how to find second largest element of this array?
good video
Hi, java 20 just released
Please make videos on Apache Kafka
Please check out my Kafka playlist
How to find unique elements from 2 different list of integers. Element in one list should not present in other list. Request you to share the program to solve the above problem. Thanks
Please share some sample inputs
@Javatechie
Please create a java 8 code to find sub string with maximum repeating characters
Wow thanks
What is identity method use case of plz ??
guruji please do one real time project guruji please so that we can survive in industry
Okay i will do that buddy
🙏💯💯
Latest versions of Java please.
Thanks brother first question I faced in interview that time I failed to write 😔 ,do next video for core java when we go for java 8, because in system round they are asking time complexity and memory wasting , so which one is best loops or java8
Functional programming does not improve the performance of any system. it has the same complexity as writing a conventional imperative style of programming. The only advantage streams and functional programming generally present is, clean, concise and easy to read code.
@@oludamilareolukotun9929 which one best
@@bhavanisankar71 Functional style is better. Take a look at the 2 styles for removing duplicate below. You will see functional is easy to read and clean
FOR LOOP FOR GETTING DUPLICATE
public static List getDuplicateForLoopStyle(List strings){
Map maps = new HashMap();
for (String s : strings){
if (!maps.isEmpty() && maps.containsKey(s)){
int value = maps.get(s);
maps.put(s,++value);
}else maps.put(s,1);
}
List result = new ArrayList();
for (Map.Entry entry : maps.entrySet()){
if (entry.getValue() > 1){
result.add(entry.getKey());
}
}
return result;
}
FUNCTIONAL STYLE FOR GETTING DUPLICATE
public static List getDuplicateFunctionalStyle(List strings){
return strings.stream()
.collect(Collectors.groupingBy(x -> x, Collectors.counting()))
.entrySet()
.stream()
.filter(x -> x.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
}
Bro why did u take entryset here ?
How to find missing numbers in array using streams ?
Good day
How to remove adjacent duplicates of a string in java8
Try this
public static String removeAdjacentDuplicates(String input) {
return input.chars()
.mapToObj(c -> (char) c)
.collect(StringBuilder::new, (sb, c) -> {
if (sb.length() == 0 || sb.charAt(sb.length() - 1) != c) {
sb.append(c);
}
}, StringBuilder::append)
.toString();
}
@@Javatechie thank you for your response
Bro how l is first non rpt .. bcoz c is non repeat first
Bro groupby simple definition plz
i want use of redis
@ r u from odisha
Yes buddy 🙌
@@Javatechie cool amazing
@ do we have any source of communication
@@Javatechie Jai Jaggannath
You can ping me on javatechie4u@gmail.com or Facebook
String input= a2b2c1d3,
String output=aabbcddd
Anybody implement it
You can achieve this using Java 8 streams. Here's a Java program that takes the input "a2b2c1d3" and produces the output "aabbcddd" using streams:
```java
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String input = "a2b2c1d3";
String output = decodeString(input);
System.out.println(output);
}
public static String decodeString(String input) {
return input.chars()
.mapToObj(c -> (char) c)
.collect(StringBuilder::new, (sb, c) -> {
if (Character.isLetter(c)) {
sb.append(c);
}
if (Character.isDigit(c)) {
int count = Character.getNumericValue(c);
char prevChar = sb.charAt(sb.length() - 1);
for (int i = 0; i < count - 1; i++) {
sb.append(prevChar);
}
}
}, StringBuilder::append)
.toString();
}
}
```
This program uses streams to process the input string character by character and builds the desired output. When you run it with the input "a2b2c1d3," it will produce the output "aabbcddd."
That's a nice explanation for java 8, but the exercises you are solving, best way is not to do them with streams, just a regular for loop
why not stream?
@@oludamilareolukotun9929 it's slower with streams unless you have a very large dataset in the array, like 1,000 elements, otherwise for loop and just using collections is faster performance
Then why companies are still using java8
Hi All, Integer l = Arrays.asList(1, 41, 3, 31, 1).stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting())).entrySet().stream()
.filter(x -> x.getValue() == 1l).findFirst().get().getKey();
System.out.println(l);
In this example I am expecting output 41 but getting 3 , why ?? ?????/
It will internally use a hashmap so we can't expect an insertion order . That's why I explained in video what to do check and apply
very helpful