I searched for a lot of courses on DSA on youtube, used to watch 1 or 2 videos, after that it became boring. But I am addicted to this course and Kunal is slowly becoming an inspiration to me. Thanks Kunal
The subtle sense of humour keeps me hook. I was following a guys course dont want to point out names(rhymes with dman attarwal ) for c++ and as soon as i saw this guys first video i am now a java guy.
But intentionally he is not teaching because he knew that if he would teach that also now everyone just gets confused with all concepts. But this is a good way of teaching according to me slow and steady. All concepts will be cleared easily. Sir is teaching in a good way according to me 👍
🎯 Key Takeaways for quick navigation: 01:19 📌 Arrays are collections of data types, and their syntax includes the data type and size declaration. 03:35 📌 Arrays in Java are stored in the heap memory, and heap objects are not guaranteed to be continuous. 09:55 📌 The "new" keyword is used to create objects in Java, including arrays. It's associated with dynamic memory allocation. 16:44 📌 Array indices start from 0, and accessing elements is done using these indices. 20:18 📌 "null" is a special literal in Java representing the absence of a value and is commonly used for uninitialized reference variables. 25:53 📚 2D arrays in Java can be visualized as arrays of arrays, where each individual index holds a reference to an array. 31:23 🔄 You can iterate through array elements using a traditional for loop, an enhanced for-each loop, or utilize the `Arrays.toString()` method for simple printing. 40:07 🔀 Java passes array references to functions by value, allowing functions to modify the original array data. 42:49 🛠️ Defining a 2D array in Java involves specifying the number of rows, while the number of columns can vary for each row. 48:26 🔄 The individual arrays within a 2D array can have varying sizes, making it possible to have jagged arrays where each row has a different number of columns. 51:01 📚 Arrays in 2D can be accessed using index [row][column]. 52:40 📚 `array.length` returns number of rows in a 2D array. 56:14 📚 Nested loops are used to input values in a 2D array. 01:00:11 📚 Enhanced for loop simplifies iterating through 2D arrays. 01:04:19 📚 ArrayList in Java allows dynamic resizing without specifying size. 01:15:00 📚 ArrayList in Java is a dynamic data structure similar to arrays but with automatic resizing. 01:17:26 🧬 ArrayList capacity increases dynamically by doubling its size when it reaches a certain threshold. 01:19:39 🔍 ArrayList supports methods like add, remove, update, set, contains, and more for manipulating elements. 01:24:41 ⏰ ArrayList provides an amortized constant-time complexity for adding elements due to its dynamic resizing strategy. 01:35:48 🔄 Swap and find maximum element in an ArrayList can be achieved through simple iterative loops and basic comparison logic. 01:40:48 🔄 Reversing an array using the two-pointer method involves swapping elements from start to end and gradually moving the pointers towards each other. 01:41:28 🔃 The reverse process works for both even and odd-length arrays, utilizing start and end pointers to achieve the reversal. 01:43:05 ✨ The code for reversing an array using the two-pointer approach was demonstrated, showing how to swap and adjust pointers to reverse the array. 01:43:58 🚶♂️ The two-pointer method is introduced as a valuable technique, and the session concludes by highlighting the upcoming focus on more advanced array-related questions. 01:44:26 📚 Future sessions will delve into array-related questions, including rotation, palindromic arrays, sliding windows, and two-pointer techniques to enhance problem-solving skills. Made with HARPA AI
@@Dicegambler-r8h The choice between learning Data Structures and Algorithms (DSA) or continuing to study Java depends on your goals and interests. If you want to focus on programming fundamentals, continue learning Java. If you're more interested in competitive programming, software engineering, or algorithm-heavy fields, DSA could be a valuable skill. Consider your career aspirations and personal preferences to make the decision. It's also possible to blend both by learning DSA in the context of Java or another programming language.
See I am not a beginner in java and dsa but still I didn't knew this much knowledge regarding arrays. Indeed it's a very detailed course, kudos to kunal ✌👍🔥
Haven't studied array in my life in such a way that I did today. This course is going to be loved by millions in the upcoming years. Adding a comment so that if someone finds it similar with their thoughts I'll be having notifications. Great job!
Just a suggestion. These videos are gonna be watched by millions of people worldwide over many years. As current people expect videos faster, please don't prioritise that over quality of the videos. Take your time! Make the best courses ever! ❤️ As always, you're doing a great job!
Kunal, I discovered your channel while I was trying to understand arrays and I have to say you might be one of the best programming tutorial channels out there. You explain everything thoroughly but you do not complicate things. You go in to depth and not only answer the how but the why. Thank you.
Okey! so I'm a Cybersecurity Student from Germany, I just got to know about this channel and man ohh man it's the best thing on RUclips. Happy to learn from him. We do have DSA in our Cybersecurity curriculum because it is helpful for roles like Cybersecurity Engineer, Where we need to build efficient programs :)
Kunal you are the first person who explains the 'internal working' of everything! Every other course I took, the 'why' part was missing and I had lot of questions. Now everything is crystal clear! Keep up the good work! Thanks a lot🙂
No doubt we must know the concepts and 'why' part really well and kudos to Kunal for such a detailed explaination, but the internal working of data structures is certainly not required for solving most of the questions. It can be disastrous. as it was in my case, if someone newbie doesn't know this and wastes his entire time on understanding the theoretical part. That's why I think, in the DSA course it should have been avoided, where major focus must be on problem solving. Again, no hate at all.
I am also 2022 graduate like kunal , I also know ds/algo very well. I have watched dsa course of almost all big ed-tech startups in India.I can assure anyone this is not one of the but the best course in the market. Waiting for other courses by him so that I can also learn him.Such a inspiration for me
You made 1hr45mins length video just to explain Arrays and Arraylist 🤩🤩 The Concepts are cleared so thorough. Really, this is the best DSA Series❤️ one can't even think of making this that too for free.
I am amazed by the fact that , Kunal can make learning so easy and faster , i cannot recall when was the last time i had this efficiency in learning a language, also it is so fun , seeing him smile a little when he runs a snippet of code . I hereby declare , your are my fav person for DSA on youtube . Great work Kunal , Thanks.
Hi my dear brother Kunal. I am elder by 2 years than you but you are the greatest guru I have ever seen in my life. Learning from your videos just gives me true bliss and I can just keep learning from your videos all day long. If I keep aside your fantabulous teaching skills and insightful knowledge, the intention that you carry about providing such a precious knowledge for free just make me feel that you are born for the people like me who are very curious to learn things in details. Truly appreciate you from the core of my heart and I pray God to bless you immensely on this journey and make all the wishes true by making all our wishes true in disguise. I will be rooting for you on this journey. My dear talented brother!
Sir, i dont have any words to say, following your playlist from just 2 days and i am on this video, Man its so addictive, literally i was the guy who was spending whole time on Netflix just doing timepass. Getting this playlist is like getting treasures in Egypt. How can i thank you.
If you are searching to the best videos of Java + DSA. Just go through this , you gonna learn very clearly rather than the paid courses🙌 Thanks Kunal lots of love from Nepal❤.
Seriously yaar no one like u ❤️ ur amazing .....before this session I didn't saw any single video on arrays like this . Thanku so much for ur support .
@@KunalKushwaha U said u will cover in 2 months the whole course. But now u have stopped even its 6 months. You r spending time on other courses which could have been made after completing DSA. Y r u doing so? Y r u making us feel dependent and helpless by leaving in the middle le?? You got huge number of subscribers bcz of your DSA course and we needed it and trusted you. This is unfair.
I'm literally obsessed with this man His way of teaching can't be compared. I went through many dsa videos but no one dives this much into the topic. He's doing a lot for all of us. He deserves millions of appreciation. I salute him.
One thing I like most is the usage of face-cam in your tutorials. It makes me feel like having a live interaction and its very effective and addictive Cheers Kunal❤️🙌
this course is above every other one on internet i have seen so many courses and they don't feel the same they get boring after 2-3 videos but yours is just on another level you share every bit of information which too in such a great way
Timestamps: 0:00 Introduction 1:22 Why we need Arrays? 2:58 What is an Array? 3:13 Syntax of an Array 4:26 Direct hit Program : Store 5 Roll Numbers 6:44 How does Array works? 8:42 Internal Working of an Array 10:32 Dynamic Memory Allocation 12:00 Internal Representation of Array 13:06 Continuity of an Array 16:25 Index of an Array 19:53 String Array 20:42 What is null in Java? 23:30 null is used as a default 27:55 Array Input 31:19 for-each loop 33:15 toString() Method 34:52 Array of Objects 36:25 Storage of Objects in Heap 40:21 Array Passing in Function 42:32 Multidimensional Arrays 43:36 Syntax of a 2D Array 45:20 Internal Working of a 2D Array 50:16 2D Array Input 1:01:06 2D Array Output 1:07:05 Dynamic Arrays 1:17:22 Array Functions 1:21:08 Internal Working of ArrayList 1:33:21 Questions 1:33:30 Q1 : Swaping Values in an Array 1:35:20 Q2 : Maximum Value of an Array 1:40:45 Q3 : Reversing an Array 1:44:20 Outro
@@KunalKushwaha U said u will cover in 2 months the whole course. But now u have stopped even its 6 months. You r spending time on other courses which could have been made after completing DSA. Y r u doing so? Y r u making us feel dependent and helpless by leaving in the middle le?? You got huge number of subscribers bcz of your DSA course and we needed it and trusted you. This is unfair.
@@Sendobren sief free content k name se kuch ni hota. Banda apna time invest kar rha hai agr kuch dekhne ko.. To wo complete hi ni to kya faida.. Placement ni nikaal paao gay incomplete knowledge se. Dekh lo ghanto tak free content
If anyone is wondering why it is O(1) in insertion, the logic (as best as I can understand), is this - Basically every time you double it, the capacity increases to twice, so you need not double it for quite some time. Suppose your original ArrayList had cap:10 And you have to fill 1000 values After 5 values, new_cap = 20 After 10 values, new_cap = 40 After 20 values, new_cap = 80 After 40 values, new_cap = 160 After 80 values, new_cap = 320 After 160 values, new_cap = 640 After 320 values, new_cap = 1280 As this increases, you realize that to reach that half capacity when you need to double the size, that value also increases. To increase capacity to 2560, you need to add 320 more values. To increase capacity further to 5120, you need to add 640 more values So for larger values, this basically becomes O(1) wherein it is assumed that the ArrayList size is already so big, you're just appending values
if I initialize array list at 10 and add 350 values in it. Then, new size of array list is going to be 1280 but I do not add more values to it. so the Q is, will my array list will remain of size 1280 and rest of the space(1280-350) will be allocated in memory even though I am not using it?
@@jeeveshkumar9682 So you are right my friend, the rest of the space will be allocated in memory wether its been used or not, but there is an option called 'trimToSize()' you can use it for trimming the arraylist upto its lenght like in your case 350
I dont think there is any other course on youtube which matches the quality and dedication displayed by kunal in this video, Thanks so much for your effort, a lifesaver, cant wait for trees and graphs uploads.
people are making vdeos on how to slove that question and I think that will be pretty easy if u understand the solution from anywhere u can teach or make videos but the most important thing which I feel on watching kunal videos is that he is teaching from the basics like how memory allocates and how actually things work on the system .. and bhai thanks again itna deep me mene kabhi nahi socha tha ki cheeje hogi..
This is one of the ,if not the best video for array .Everything is explained in detail,and his way of teaching is superb,it's easy to understand.Can't get better than this.
I have finished 1hr 45 mins video in one go 😱, kunal your videos are so much addictive. To your content, to your determination, to your hardwork take a bow 🙌
@@mesmerizeart663😂😂😂 no bro I solve many questions regarding 2d arrays and multi dimensionol arrays I start with basic of Kunal series firsti watch complete Oop course of 7 vedio then I start DSA from 1 to 8 vedio now concept are cleared now he is a great teacher
I Already know java intermediate level but watching the series for the first video because there a something interesting about this guy that makes me watch it.His tone of teaching his knowledge just Loved it....Thanks kunal
I wanted to learn 2D arrays in java and searched for it on RUclips and other sources i didn't understand a thing, may be because it was imprinted on my mind that it's complicated but Kunal you made it soooo easy , internal working and all oh my god such a wonderful gift you are for us ❤️
The array elements are contiguous in nature even in java. The object encompasses the array. JVM will allocate each element of array in contiguous nature only within the object that encompasses it. However, the object itself will be allocated any free area available in the heap so basically, if you create 2 objects in rapid succession, they may still be allocated at different addresses but the arrays in those objects will be contiguous in nature.
Literally 2 min in and I really appreciate your teaching style. Instead of just teaching what is and how to use it you provide a question or problem while also encouraging the audience to think. Looking for to going through more of your videos, thank you.
I am extremely grateful to uh kunal.....you are the BEST!!!!!!!. your channel deserves more subscribers than any other channel out there,hope people know about your channel..and i bet , just by seeing one single video they will definitely get addicted to your teaching. 🙇♀
Thank you Kunal,this is 2024 and here i am learning java after i graduated from one year software engineering training.This is what i need to be the best java engineer
Seriously man you amaze me with your teaching skills in every video! I never understood arrays in such a detailed manner. Thanks a lot for this course.
You know this is a great course because it has no useless jokes and point to point stuff and its so helpful cant even explain how good is this even for revision
When kunal's marriage is getting fixed and his parents asks for the wedding date he will say we will look into it in object oriented programming Ps: This is just a joke.The course is amazing and way better than anything i have ever seen
1:27:47 yeah its doubling the array size as you said .prefGrowth parameter is rightshifted by 1 bit which mathematically means multiply by 2, so size is doubled
🎯 Key Takeaways for quick navigation: 00:46 🤔 Arrays are needed when there's a need to store a collection of data elements of the same type. They provide a way to efficiently store and manage multiple values of the same data type. 03:18 🧩 The syntax to create an array in Java involves specifying the data type followed by square brackets. Memory for the array is dynamically allocated at runtime using the `new` keyword. 05:13 🧱 Arrays in Java are collections of elements of the same data type, and all elements in the array must have the same data type. 09:37 📊 Java heap objects, including arrays, are not necessarily continuous blocks of memory, unlike in some other languages like C++. JVM manages memory dynamically at runtime for heap objects. 20:18 📑 When an array of non-primitive objects is created, each element of the array is initialized with the default value `null`. 25:53 🧠 Java arrays store reference variables, and each element in the array points to objects in the heap memory. 28:32 📝 You can use for loops to easily populate arrays with user input or print their elements. 31:23 🔄 Enhanced for-loop (for-each) provides a cleaner way to iterate through array elements directly without using indices. 37:20 💡 Java 2D arrays can be visualized as arrays of arrays, where each element points to another array in the heap memory. 48:26 🔄 The size of individual rows in a 2D array can vary, as each row is a separate object with its own memory allocation. 51:01 👉 Arrays in Java are initialized with a fixed size, making them less flexible for dynamic input. 53:07 👉 To take input for a 2D array, use nested for loops to iterate through each row and column. 54:25 👉 Use `Arrays.toString()` or enhanced for loops to print the 2D array in a more readable format. 59:14 👉 For varying column sizes, access the size of each row individually using `array[row].length`. 01:05:20 👉 ArrayList in Java provides a dynamic-size array-like structure, allowing adding elements without specifying a fixed size. 01:14:31 🔄 Constructor in Java is used to define initial values for an object. It is essential in object-oriented programming but not discussed in detail here. 01:15:00 📝 ArrayList in Java can dynamically add elements without specifying an initial size. It internally resizes and doubles its capacity as needed when elements are added beyond the initial capacity. 01:15:30 ➕ Elements can be added to an ArrayList using the `add` method. There is no need to specify an initial size, and multiple elements can be added sequentially. 01:17:39 ❓ ArrayList provides useful methods like `contains`, `set`, and `remove` to perform operations on its elements, making it easy to manipulate data. 01:25:08 🔄 ArrayList internally resizes its capacity to accommodate more elements. When the capacity is reached, it creates a new, larger ArrayList and copies the elements to it. The process of resizing maintains a constant amortized time complexity for adding elements. 01:40:15 🔀 To reverse an array in Java, use the "two pointer method." Swap elements at the start and end indices iteratively until the start index becomes greater than the end index. 01:40:48 🔄 The two pointer method works for arrays of both even and odd lengths. 01:43:05 ➕ The `swap` function can be used to swap elements in the array efficiently during the reversal process. 01:43:18 🎯 The two pointer method is a useful approach for solving specific coding challenges, such as those involving array rotation or palindromic arrays. 01:44:12 📅 Future videos will focus on solving coding questions related to arrays using techniques like sliding window and two-pointer methods. Made with HARPA AI
This is the course that i wanted to watch ...I have watched so many dsa channels in this 6 months no one has teached in depth like this.. And also I always wanted to know why we should do (some particular programming stuff) in this way only..i have watched so many videos but none of them told me the internal workings .. they just made me to remember how is the syntax and how we should use (that particular topic) I always wanted to know why we use this.. finally i found your channel thanks kunal!
Kunal hope u will provide all the "quality" questions for each of the videos of dsa which would cover the concepts in whole so that we don't have to search out for things 🙌🙌
I used to sit for hours for a movie but not in case of studies the knowledge u r providing made me to sit and listen for such lengthy hours not even getting bored at any moment. Very intresting. I searched for many channels but u r really awesome becoz diving depth into each and every part.
The way I wanted to learn DSA in java with proper knowledge and not only the concept but also how the things actually work ,from core everything is explained by Kunal . 1st I was like yaar 1 -1 2-2 hr ki video kon baithega itna but when I see what he is teaching have everything that I wanted, that one one two two hours is worth watching. Thanks Kunal.
Honestly I never understood 2D arrays until I saw your video buddy. I used to be terrified of computer science as I was from a non cs background,that feeling is slowly changing. You are too good and kind buddy .
Hi, Kunal, thank you for taking the time to take such elaborate sessions and explaining it such simple ways. I like the format (what, why, how to use - a concept) of your sessions. When you get a chance, could you please do a video/session on JSON, JSONObject, JSONArray, how to read/modify/loop through/parse, complex JSON like JSONArray inside another JSONArray etc? Thanks again. Looking forward to the next session.
You are doing really good job!!!!! Can you please release the videos sooner because my placement season is going on and i want to complete the course as soon as possible.
Really excellent content, one small suggestion. when we create an array object it contains both the metadata(contains data like length, hashcode, size, type etc) and the actual elements, according to JLS, they actually meant that the address of the meta data and actual elements are not continuous, but the elements itself are continuous. For example if the address of metadata is 0x1000, the elements address goes like 0x2000, 0x2004, 0x2008etc....so array object -> Array elements + metadata. So Array elements are always stored in continuous memory allocation.
Hey kunal ! just a little request if you can explain the difference in some similar concepts of java and python then it will be great.BTW you are providing great content..!Thanks.
Kunal it would be really great if you create a new class for all the questions and concepts..It gets confusing sometimes if you do everything in the same class.
Just a note: ArrayList Syntax changes with every java version, So when you try to use the same syntax in java17. It gives error that ArrayList will not take parameters
Finished the last video from Kunal. I finished full OOP serie, Methods, Arrays and Conditionals. Coming Thursday is my exam. Let's hope for the best! Thank you Kunal for the amazing lessons!
Even if I knew that topic I am learning something new everytime just by seeing the videos ...that shows how much quality content these videos have ...Thanks Kunal for such an amazing content absolutely for free 👏
Hi Kunal, Great Job! I found you mentioning for an expression int[] arr = new int[5]; The declaration < int[] arr > executed at compile time and the memory allocation happen while execution(run) time. Compile time we only check for compliance of types but actual variables(in stack) and memory allocation(in heap) both happened at runtime. I thought of by mistake mis spelled here. But thanks a lot for the best content.
I'm data analyst and in process of transition into data scientist. Working on python from quite long time but as core concepts not cleared with this not able to do much coding in end to end projects, or we can say not able optimize code.. i have taken courses as well. but i would say, this playlist is imaging. i'm trying everything in python what you have taught in java in this playlist. thank you so much for clearing every doubt .
Hey I was having difficulty understanding what array are & why we are using, I was following something else to learn java , but kunal you are explaining things in a very detailed manner. Now I'm going to watch your full java course.
I find your course very beginner-friendly. You generate curiosity and provide complete understanding as well. I am hooked to it. Hopefully u provide more content continuously. Thanks a Lot!!
DSA + interview preparation playlist: ruclips.net/p/PL9gnSGHSqcnr_DxHsP7AW9ftq0AtAyYqJ
Thanks
I searched for a lot of courses on DSA on youtube, used to watch 1 or 2 videos, after that it became boring. But I am addicted to this course and Kunal is slowly becoming an inspiration to me. Thanks Kunal
There is no course on RUclips/any online platforms like this one, for free.
yes same! i feel addicted too! maybe because i understand everything way easily
@@KunalKushwaha No doubt.. kunal bhai u r gem. Live u and this course 😍 keep shining ❤
@@KunalKushwaha There is no assignments for arrays in repo
The subtle sense of humour keeps me hook. I was following a guys course dont want to point out names(rhymes with dman attarwal ) for c++ and as soon as i saw this guys first video i am now a java guy.
Kunal kushwaha is a Gem of a person, i repeat Kunal kushwaha is a GEM of a person, period. That's it that's the comment.
me: doubt
kunal: don't worry, we will cover it in object oriented programming
😆😂
Brother I know it may sound funny now but It gives us motivation to watch till OOPs so that we can get our doubts cleared and be better
🤣🤣🤣
@@ADICULERmeanwhile i forgot the doubt
But intentionally he is not teaching because he knew that if he would teach that also now everyone just gets confused with all concepts. But this is a good way of teaching according to me slow and steady. All concepts will be cleared easily. Sir is teaching in a good way according to me 👍
🎯 Key Takeaways for quick navigation:
01:19 📌 Arrays are collections of data types, and their syntax includes the data type and size declaration.
03:35 📌 Arrays in Java are stored in the heap memory, and heap objects are not guaranteed to be continuous.
09:55 📌 The "new" keyword is used to create objects in Java, including arrays. It's associated with dynamic memory allocation.
16:44 📌 Array indices start from 0, and accessing elements is done using these indices.
20:18 📌 "null" is a special literal in Java representing the absence of a value and is commonly used for uninitialized reference variables.
25:53 📚 2D arrays in Java can be visualized as arrays of arrays, where each individual index holds a reference to an array.
31:23 🔄 You can iterate through array elements using a traditional for loop, an enhanced for-each loop, or utilize the `Arrays.toString()` method for simple printing.
40:07 🔀 Java passes array references to functions by value, allowing functions to modify the original array data.
42:49 🛠️ Defining a 2D array in Java involves specifying the number of rows, while the number of columns can vary for each row.
48:26 🔄 The individual arrays within a 2D array can have varying sizes, making it possible to have jagged arrays where each row has a different number of columns.
51:01 📚 Arrays in 2D can be accessed using index [row][column].
52:40 📚 `array.length` returns number of rows in a 2D array.
56:14 📚 Nested loops are used to input values in a 2D array.
01:00:11 📚 Enhanced for loop simplifies iterating through 2D arrays.
01:04:19 📚 ArrayList in Java allows dynamic resizing without specifying size.
01:15:00 📚 ArrayList in Java is a dynamic data structure similar to arrays but with automatic resizing.
01:17:26 🧬 ArrayList capacity increases dynamically by doubling its size when it reaches a certain threshold.
01:19:39 🔍 ArrayList supports methods like add, remove, update, set, contains, and more for manipulating elements.
01:24:41 ⏰ ArrayList provides an amortized constant-time complexity for adding elements due to its dynamic resizing strategy.
01:35:48 🔄 Swap and find maximum element in an ArrayList can be achieved through simple iterative loops and basic comparison logic.
01:40:48 🔄 Reversing an array using the two-pointer method involves swapping elements from start to end and gradually moving the pointers towards each other.
01:41:28 🔃 The reverse process works for both even and odd-length arrays, utilizing start and end pointers to achieve the reversal.
01:43:05 ✨ The code for reversing an array using the two-pointer approach was demonstrated, showing how to swap and adjust pointers to reverse the array.
01:43:58 🚶♂️ The two-pointer method is introduced as a valuable technique, and the session concludes by highlighting the upcoming focus on more advanced array-related questions.
01:44:26 📚 Future sessions will delve into array-related questions, including rotation, palindromic arrays, sliding windows, and two-pointer techniques to enhance problem-solving skills.
Made with HARPA AI
thank you brother
@@tahir-uddin-ahmedthank AI for generating this answer
that's cool bro how amazingly the ai has written all the contents 😮
What do I do after this video? Should I get into learning DSA? Or continue Java?
@@Dicegambler-r8h The choice between learning Data Structures and Algorithms (DSA) or continuing to study Java depends on your goals and interests. If you want to focus on programming fundamentals, continue learning Java. If you're more interested in competitive programming, software engineering, or algorithm-heavy fields, DSA could be a valuable skill. Consider your career aspirations and personal preferences to make the decision. It's also possible to blend both by learning DSA in the context of Java or another programming language.
See I am not a beginner in java and dsa but still I didn't knew this much knowledge regarding arrays. Indeed it's a very detailed course, kudos to kunal ✌👍🔥
What's your update now brother
Haven't studied array in my life in such a way that I did today. This course is going to be loved by millions in the upcoming years. Adding a comment so that if someone finds it similar with their thoughts I'll be having notifications. Great job!
Just a suggestion. These videos are gonna be watched by millions of people worldwide over many years. As current people expect videos faster, please don't prioritise that over quality of the videos. Take your time! Make the best courses ever! ❤️ As always, you're doing a great job!
And do spend a little bit more time on questions.
Agreed on it
I mentioned the questions part already that I will upload separate videos on questions only for every topic.
@@KunalKushwaha is it at the last or after some days
@@AjayYadav-xi9sj not at last, after every topic
Kunal, I discovered your channel while I was trying to understand arrays and I have to say you might be one of the best programming tutorial channels out there. You explain everything thoroughly but you do not complicate things. You go in to depth and not only answer the how but the why. Thank you.
Okey! so I'm a Cybersecurity Student from Germany, I just got to know about this channel and man ohh man it's the best thing on RUclips. Happy to learn from him. We do have DSA in our Cybersecurity curriculum because it is helpful for roles like Cybersecurity Engineer, Where we need to build efficient programs :)
Great to hear!
Hey I am also a cybersecurity student but learning for Secure code review
Kunal you are the first person who explains the 'internal working' of everything! Every other course I took, the 'why' part was missing and I had lot of questions. Now everything is crystal clear! Keep up the good work! Thanks a lot🙂
No doubt we must know the concepts and 'why' part really well and kudos to Kunal for such a detailed explaination, but the internal working of data structures is certainly not required for solving most of the questions. It can be disastrous. as it was in my case, if someone newbie doesn't know this and wastes his entire time on understanding the theoretical part. That's why I think, in the DSA course it should have been avoided, where major focus must be on problem solving. Again, no hate at all.
I am also 2022 graduate like kunal , I also know ds/algo very well. I have watched dsa course of almost all big ed-tech startups in India.I can assure anyone this is not one of the but the best course in the market. Waiting for other courses by him so that I can also learn him.Such a inspiration for me
Can I watch these videos if I know C++ but not JAVA
Yes@@sambhavmishra5423
For sure😂
You made 1hr45mins length video just to explain Arrays and Arraylist 🤩🤩
The Concepts are cleared so thorough.
Really, this is the best DSA Series❤️ one can't even think of making this that too for free.
Thank you so much 🙂
@@KunalKushwaha ❤️
I am amazed by the fact that , Kunal can make learning so easy and faster , i cannot recall when was the last time i had this efficiency in learning a language, also it is so fun , seeing him smile a little when he runs a snippet of code . I hereby declare , your are my fav person for DSA on youtube . Great work Kunal , Thanks.
Hi my dear brother Kunal. I am elder by 2 years than you but you are the greatest guru I have ever seen in my life. Learning from your videos just gives me true bliss and I can just keep learning from your videos all day long. If I keep aside your fantabulous teaching skills and insightful knowledge, the intention that you carry about providing such a precious knowledge for free just make me feel that you are born for the people like me who are very curious to learn things in details.
Truly appreciate you from the core of my heart and I pray God to bless you immensely on this journey and make all the wishes true by making all our wishes true in disguise. I will be rooting for you on this journey.
My dear talented brother!
Sir, i dont have any words to say, following your playlist from just 2 days and i am on this video, Man its so addictive, literally i was the guy who was spending whole time on Netflix just doing timepass. Getting this playlist is like getting treasures in Egypt. How can i thank you.
is this playlist completed bro?
@@supreetss8382 no
kunal kushwaha == "one man army"
👌👌👌👌👌👌
Rahul Rana is also playing a major role bro
If you are searching to the best videos of Java + DSA. Just go through this , you gonna learn very clearly rather than the paid courses🙌
Thanks Kunal lots of love from Nepal❤.
Seriously yaar no one like u ❤️ ur amazing .....before this session I didn't saw any single video on arrays like this . Thanku so much for ur support .
I finally learned 2D arrays properly. That's because of you Kunal!! Thank you very much :)
My pleasure 😊
@@KunalKushwaha U said u will cover in 2 months the whole course. But now u have stopped even its 6 months. You r spending time on other courses which could have been made after completing DSA.
Y r u doing so?
Y r u making us feel dependent and helpless by leaving in the middle le??
You got huge number of subscribers bcz of your DSA course and we needed it and trusted you. This is unfair.
@@John12685 Because he just needed to get his subscriber count up to generate revenue from YT.
@@mayukhbanerjee1147 Yes he deceived us. I have u subscribed his channel for his breaking his commitment.
@@KunalKushwaha U deceived us
I'm literally obsessed with this man His way of teaching can't be compared. I went through many dsa videos but no one dives this much into the topic. He's doing a lot for all of us. He deserves millions of appreciation. I salute him.
One thing I like most is the usage of face-cam in your tutorials.
It makes me feel like having a live interaction and its very effective and addictive
Cheers Kunal❤️🙌
this course is above every other one on internet i have seen so many courses and they don't feel the same they get boring after 2-3 videos but yours is just on another level you share every bit of information which too in such a great way
what about apna college course
You are amazing because you never create confusion when you teaching. You are a Great teacher 💯💯👍👍
Timestamps:
0:00 Introduction
1:22 Why we need Arrays?
2:58 What is an Array?
3:13 Syntax of an Array
4:26 Direct hit Program : Store 5 Roll Numbers
6:44 How does Array works?
8:42 Internal Working of an Array
10:32 Dynamic Memory Allocation
12:00 Internal Representation of Array
13:06 Continuity of an Array
16:25 Index of an Array
19:53 String Array
20:42 What is null in Java?
23:30 null is used as a default
27:55 Array Input
31:19 for-each loop
33:15 toString() Method
34:52 Array of Objects
36:25 Storage of Objects in Heap
40:21 Array Passing in Function
42:32 Multidimensional Arrays
43:36 Syntax of a 2D Array
45:20 Internal Working of a 2D Array
50:16 2D Array Input
1:01:06 2D Array Output
1:07:05 Dynamic Arrays
1:17:22 Array Functions
1:21:08 Internal Working of ArrayList
1:33:21 Questions
1:33:30 Q1 : Swaping Values in an Array
1:35:20 Q2 : Maximum Value of an Array
1:40:45 Q3 : Reversing an Array
1:44:20 Outro
Thank you
Content is far better than paid courses😊...well done bro👍...keep bringing more such videos, I really appreciate your hard work
Thanks a ton
@@KunalKushwaha U said u will cover in 2 months the whole course. But now u have stopped even its 6 months. You r spending time on other courses which could have been made after completing DSA.
Y r u doing so?
Y r u making us feel dependent and helpless by leaving in the middle le??
You got huge number of subscribers bcz of your DSA course and we needed it and trusted you. This is unfair.
@@John12685 brother you are literally getting free stuff off the internet, get a grip
@@Sendobren sief free content k name se kuch ni hota. Banda apna time invest kar rha hai agr kuch dekhne ko.. To wo complete hi ni to kya faida.. Placement ni nikaal paao gay incomplete knowledge se. Dekh lo ghanto tak free content
@@John12685 bro he covered all the basics of dsa with java now you can study from others like striver or apna college etc .
It is getting more interesting as the course progresses ❣❣💖
If anyone is wondering why it is O(1) in insertion, the logic (as best as I can understand), is this -
Basically every time you double it, the capacity increases to twice, so you need not double it for quite some time.
Suppose your original ArrayList had cap:10
And you have to fill 1000 values
After 5 values, new_cap = 20
After 10 values, new_cap = 40
After 20 values, new_cap = 80
After 40 values, new_cap = 160
After 80 values, new_cap = 320
After 160 values, new_cap = 640
After 320 values, new_cap = 1280
As this increases, you realize that to reach that half capacity when you need to double the size, that value also increases. To increase capacity to 2560, you need to add 320 more values. To increase capacity further to 5120, you need to add 640 more values
So for larger values, this basically becomes O(1) wherein it is assumed that the ArrayList size is already so big, you're just appending values
if I initialize array list at 10 and add 350 values in it. Then, new size of array list is going to be 1280 but I do not add more values to it. so the Q is, will my array list will remain of size 1280 and rest of the space(1280-350) will be allocated in memory even though I am not using it?
@@jeeveshkumar9682 So you are right my friend, the rest of the space will be allocated in memory wether its been used or not, but there is an option called 'trimToSize()' you can use it for trimming the arraylist upto its lenght like in your case 350
I dont think there is any other course on youtube which matches the quality and dedication displayed by kunal in this video, Thanks so much for your effort, a lifesaver, cant wait for trees and graphs uploads.
people are making vdeos on how to slove that question and I think that will be pretty easy if u understand the solution from anywhere u can teach or make videos but the most important thing which I feel on watching kunal videos is that he is teaching from the basics like how memory allocates and how actually things work on the system .. and bhai thanks again itna deep me mene kabhi nahi socha tha ki cheeje hogi..
This is one of the ,if not the best video for array .Everything is explained in detail,and his way of teaching is superb,it's easy to understand.Can't get better than this.
I have finished 1hr 45 mins video in one go 😱, kunal your videos are so much addictive. To your content, to your determination, to your hardwork take a bow 🙌
But you can't solve a single program on array after watching complete video only know about basic under standing about array.
@@mesmerizeart663Haha, i have already solved many array questions on leetcode.
@@mesmerizeart663😂😂😂 no bro I solve many questions regarding 2d arrays and multi dimensionol arrays I start with basic of Kunal series firsti watch complete Oop course of 7 vedio then I start DSA from 1 to 8 vedio now concept are cleared now he is a great teacher
bruh i can't solve the assignment questions....what do i do ?@@mesmerizeart663
I Already know java intermediate level but watching the series for the first video because there a something interesting about this guy that makes me watch it.His tone of teaching his knowledge just Loved it....Thanks kunal
I wanted to learn 2D arrays in java and searched for it on RUclips and other sources i didn't understand a thing, may be because it was imprinted on my mind that it's complicated but Kunal you made it soooo easy , internal working and all oh my god such a wonderful gift you are for us ❤️
okay, then how do you input a 2D array with variable column size ? he forgot to teach that lol
@@Abhi-ng3re exactly
@@Abhi-ng3re if you're not worried abt time complexity you can use array list of array list right??
The array elements are contiguous in nature even in java. The object encompasses the array. JVM will allocate each element of array in contiguous nature only within the object that encompasses it. However, the object itself will be allocated any free area available in the heap so basically, if you create 2 objects in rapid succession, they may still be allocated at different addresses but the arrays in those objects will be contiguous in nature.
Literally 2 min in and I really appreciate your teaching style. Instead of just teaching what is and how to use it you provide a question or problem while also encouraging the audience to think. Looking for to going through more of your videos, thank you.
Glad it was helpful!
I am extremely grateful to uh kunal.....you are the BEST!!!!!!!. your channel deserves more subscribers than any other channel out there,hope people know about your channel..and i bet , just by seeing one single video they will definitely get addicted to your teaching. 🙇♀
It's my pleasure
Thank you Kunal,this is 2024 and here i am learning java after i graduated from one year software engineering training.This is what i need to be the best java engineer
Seriously man you amaze me with your teaching skills in every video! I never understood arrays in such a detailed manner. Thanks a lot for this course.
if kunal doesn't exists maybe i never love programming languages
and how fun it is
thanks kunal your doing your best
I didn't knew that in java it's not continous memory like c c++ omg so detailed 🔥
This guy is pure genius...I'm older than you but u have became my role model
Great work man.
I love your tutorials and how easy is to understand them.
Happy to hear that!
You know this is a great course because it has no useless jokes and point to point stuff and its so helpful cant even explain how good is this even for revision
When kunal's marriage is getting fixed and his parents asks for the wedding date he will say we will look into it in object oriented programming
Ps: This is just a joke.The course is amazing and way better than anything i have ever seen
hahaha.. nice one .. only those who watch videos completely can relate xD
Nice one there. LoL
Other programmer teaches : what to think..
whereas Kunal teaches: How to think..
Thanks for amazing bootcamp :)
Man u r reading my mind,
I was thinking just now about array video
Bhai bhai pura video dekhi.. bohot acchi content hai yaar.. Please upload daily.. 1 month hai placements start hone me please upload fast..
1:27:47 yeah its doubling the array size as you said .prefGrowth parameter is rightshifted by 1 bit which mathematically means multiply by 2, so size is doubled
how ? 2>>1 gives 1 as 2/ 2^1 lets take 10>>1 the size is halved, but left shift doubles the original
I think it adds half of the old capacity to it.
Nobody on entire youtube will explain 2d arrays better than you😎
Thankyou soo much for making this awesome playlist.🙇🏻♂️🙇🏻♂️
Great video Kunal! Thanks a lot for all the hardwork you are putting in making these videos
I wish I knew earlier about this master piece playlist, I could crack good companies!! 😑
You're are the real gem for students ❤...
This playlist is better than any paid course 💀
no one in this world can teach like you about these concepts !!!!!lovsss u a lot ..........
🎯 Key Takeaways for quick navigation:
00:46 🤔 Arrays are needed when there's a need to store a collection of data elements of the same type. They provide a way to efficiently store and manage multiple values of the same data type.
03:18 🧩 The syntax to create an array in Java involves specifying the data type followed by square brackets. Memory for the array is dynamically allocated at runtime using the `new` keyword.
05:13 🧱 Arrays in Java are collections of elements of the same data type, and all elements in the array must have the same data type.
09:37 📊 Java heap objects, including arrays, are not necessarily continuous blocks of memory, unlike in some other languages like C++. JVM manages memory dynamically at runtime for heap objects.
20:18 📑 When an array of non-primitive objects is created, each element of the array is initialized with the default value `null`.
25:53 🧠 Java arrays store reference variables, and each element in the array points to objects in the heap memory.
28:32 📝 You can use for loops to easily populate arrays with user input or print their elements.
31:23 🔄 Enhanced for-loop (for-each) provides a cleaner way to iterate through array elements directly without using indices.
37:20 💡 Java 2D arrays can be visualized as arrays of arrays, where each element points to another array in the heap memory.
48:26 🔄 The size of individual rows in a 2D array can vary, as each row is a separate object with its own memory allocation.
51:01 👉 Arrays in Java are initialized with a fixed size, making them less flexible for dynamic input.
53:07 👉 To take input for a 2D array, use nested for loops to iterate through each row and column.
54:25 👉 Use `Arrays.toString()` or enhanced for loops to print the 2D array in a more readable format.
59:14 👉 For varying column sizes, access the size of each row individually using `array[row].length`.
01:05:20 👉 ArrayList in Java provides a dynamic-size array-like structure, allowing adding elements without specifying a fixed size.
01:14:31 🔄 Constructor in Java is used to define initial values for an object. It is essential in object-oriented programming but not discussed in detail here.
01:15:00 📝 ArrayList in Java can dynamically add elements without specifying an initial size. It internally resizes and doubles its capacity as needed when elements are added beyond the initial capacity.
01:15:30 ➕ Elements can be added to an ArrayList using the `add` method. There is no need to specify an initial size, and multiple elements can be added sequentially.
01:17:39 ❓ ArrayList provides useful methods like `contains`, `set`, and `remove` to perform operations on its elements, making it easy to manipulate data.
01:25:08 🔄 ArrayList internally resizes its capacity to accommodate more elements. When the capacity is reached, it creates a new, larger ArrayList and copies the elements to it. The process of resizing maintains a constant amortized time complexity for adding elements.
01:40:15 🔀 To reverse an array in Java, use the "two pointer method." Swap elements at the start and end indices iteratively until the start index becomes greater than the end index.
01:40:48 🔄 The two pointer method works for arrays of both even and odd lengths.
01:43:05 ➕ The `swap` function can be used to swap elements in the array efficiently during the reversal process.
01:43:18 🎯 The two pointer method is a useful approach for solving specific coding challenges, such as those involving array rotation or palindromic arrays.
01:44:12 📅 Future videos will focus on solving coding questions related to arrays using techniques like sliding window and two-pointer methods.
Made with HARPA AI
wow thanks brother, I am also learning DSA. how much you have covered?
thank you so much! this is so great for making flashcards
This is the course that i wanted to watch ...I have watched so many dsa channels in this 6 months no one has teached in depth like this.. And also I always wanted to know why we should do (some particular programming stuff) in this way only..i have watched so many videos but none of them told me the internal workings .. they just made me to remember how is the syntax and how we should use (that particular topic) I always wanted to know why we use this.. finally i found your channel thanks kunal!
Kunal hope u will provide all the "quality" questions for each of the videos of dsa which would cover the concepts in whole so that we don't have to search out for things 🙌🙌
I will as mentioned in the video. After every topic there will come a video full of questions only.
@@KunalKushwaha please do it quickly i need it this year Im going for placements kunal. please upload
Amazing session. Maza aa gaya. Pehli baar arrays thik se samajh aaya🔥🔥
Great video man! Thanks a lot for all the hardwork you are putting in making these videos
Glad you like them!
I used to sit for hours for a movie but not in case of studies the knowledge u r providing made me to sit and listen for such lengthy hours not even getting bored at any moment. Very intresting. I searched for many channels but u r really awesome becoz diving depth into each and every part.
bro is this course complete?
Really enjoyed this lecture🥰🥰🥰
Looking forward for the next video😍😍
The way I wanted to learn DSA in java with proper knowledge and not only the concept but also how the things actually work ,from core everything is explained by Kunal . 1st I was like yaar 1 -1 2-2 hr ki video kon baithega itna but when I see what he is teaching have everything that I wanted, that one one two two hours is worth watching. Thanks Kunal.
is any tamil people here !
🖐yupp!!
Hi
🤚
Yessss!❤
Hi
Honestly I never understood 2D arrays until I saw your video buddy. I used to be terrified of computer science as I was from a non cs background,that feeling is slowly changing. You are too good and kind buddy .
I don't know how do you keep up with this amazing consistency, kudos to you providing such high quality content for free!🔥
Thanks @kunal for slow pace. Nobody is doing slowly nowadays.
Hi, Kunal, thank you for taking the time to take such elaborate sessions and explaining it such simple ways. I like the format (what, why, how to use - a concept) of your sessions.
When you get a chance, could you please do a video/session on JSON, JSONObject, JSONArray, how to read/modify/loop through/parse, complex JSON like JSONArray inside another JSONArray etc?
Thanks again. Looking forward to the next session.
Many Obstacles will come on this path of your great cause my friend.
DON'T STOP WE ALL ARE WITH YOU
"TU BAS CHALTA HI JA AAGE"
whenever kunal says : we'll look this in Object oriented programming
Me : 10 Sec. forward :)
Bhai ne feature length movie maafik course video banaya. Hats off to the dedication!
You are doing really good job!!!!! Can you please release the videos sooner because my placement season is going on and i want to complete the course as soon as possible.
if its possible and you don't face issues regarding the quality of videos.
Really excellent content, one small suggestion. when we create an array object it contains both the metadata(contains data like length, hashcode, size, type etc) and the actual elements, according to JLS, they actually meant that the address of the meta data and actual elements are not continuous, but the elements itself are continuous. For example if the address of metadata is 0x1000, the elements address goes like 0x2000, 0x2004, 0x2008etc....so array object -> Array elements + metadata. So Array elements are always stored in continuous memory allocation.
Hey kunal ! just a little request if you can explain the difference in some similar concepts of java and python then it will be great.BTW you are providing great content..!Thanks.
I will in Python bootcamp
@@KunalKushwaha 👍 great..
Getting this quality of content for free!!! Unbelievable.. Thanks alot Kunal 🙏...
Kunal it would be really great if you create a
new class for all the questions and concepts..It gets confusing sometimes if you do everything in the same class.
Yes
This is the best Explanation of Arrays and Arrays list on youtube.
new capacity = 3/2*current capacity
Excellent course by excellent person, No paid courses of so called plateforms compete with this one.
Kunal, like how we have activation records for function calls in stack in C, does the same thing happen in Java as well?
This was Extrodinary Teaching...... Never Before Ever After
Thank you kunal for providing this super Playlist..
Just a note: ArrayList Syntax changes with every java version, So when you try to use the same syntax in java17. It gives error that ArrayList will not take parameters
yes this didnt work on my end, can you tell me how else can i use Arraylist and its methods in my program..
use Intellij and select the proper jdk version. Then the IDE will autocomplete the syntax
@@vedanthbaliga7686 using intellij only, i guess i only gotta update it now!
:)
now i am going to watch all your videos in youtube . fall in love on your teaching skills . thanks a lot
"After watching your video, I regret buying paid courses."
Finished the last video from Kunal. I finished full OOP serie, Methods, Arrays and Conditionals. Coming Thursday is my exam. Let's hope for the best!
Thank you Kunal for the amazing lessons!
Kunal Bhaiya Thanks alot apne DSA jaisi chej ko itni normal way me samjhaya Thanks alot
It's huge it's I don't have words ..u explained every point like magic ..thank you somuch..best video on RUclips ..
Thank you Kunal sir. You are the best teacher I ever found to learn DSA. Lots of respect and gratitude.
Really, Kunal Sir is the God of DSA. God is making earth in DSA. Love you, Sir.
The way you explained the concept how 2D arrays will be executed in for loop is commendable , I have now words .
Speechless 😍😍😍😍
this is what i call art pure art of understanding complex things in such a simple and cool way
i am 2nd sem engineering student literally you have explained this topic like a cakewalk now i understood each concepts
every second of your video is worth watching, Kunal
Even if I knew that topic I am learning something new everytime just by seeing the videos ...that shows how much quality content these videos have ...Thanks Kunal for such an amazing content absolutely for free 👏
Hi Kunal,
Great Job!
I found you mentioning for an expression int[] arr = new int[5];
The declaration < int[] arr > executed at compile time and the memory allocation happen while execution(run) time.
Compile time we only check for compliance of types but actual variables(in stack) and memory allocation(in heap) both happened at runtime. I thought of by mistake mis spelled here.
But thanks a lot for the best content.
Long Search of Content that i really want finally comes to end . Thanks from bottom of my heart . Thanks Kunal
You’re welcome
Agar aise hi chalta raha ..to mai ek din wo ban jaunga jo maine kabhi socha bhi nahi ........Thanks from the bottom of my heart
Abhi tak bane ya nahi
I'm data analyst and in process of transition into data scientist. Working on python from quite long time but as core concepts not cleared with this not able to do much coding in end to end projects, or we can say not able optimize code.. i have taken courses as well. but i would say, this playlist is imaging. i'm trying everything in python what you have taught in java in this playlist. thank you so much for clearing every doubt .
best java course ive found on the internet..You are just amazing...
Hey I was having difficulty understanding what array are & why we are using, I was following something else to learn java , but kunal you are explaining things in a very detailed manner. Now I'm going to watch your full java course.
I find your course very beginner-friendly. You generate curiosity and provide complete understanding as well. I am hooked to it. Hopefully u provide more content continuously. Thanks a Lot!!
Happy to hear that!