Advanced Java Concepts and Collections
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Advanced Java Concepts and Collections
This course is part of Learn Automation Testing with Java and Selenium Webdriver Specialization
Included with
Learn more
Ask Coursera
Recommended experience
Recommended experience
What you'll learn
Implement cross-browser and headless testing techniques in real-world scenarios.
Develop data-driven tests using CSV and Excel, and analyze their effectiveness in different test cases.
Design and evaluate robust frameworks using the Page Object Model to ensure maintainable and scalable automation scripts.
Create and scale comprehensive automation test suites using Selenium Grid and standalone server to manage large-scale web applications.
Skills you'll gain
Details to know
5 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 7 modules in this course
Updated in May 2025.
This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this course, you'll master Selenium, a powerful tool for automating web applications. Beginning with setting up your first web application, you'll dive into Selenium locators, learning to efficiently locate web elements using strategies like ID, name, and tag name. You'll explore TestNG for project setup, debugging, and test slowing for better visualization. The course covers handling form elements such as text fields, checkboxes, radio buttons, and select boxes, creating robust automation scripts that mimic real-world user interactions. Advanced topics include window navigation, alert handling, and WebDriver's manage window methods for effective automation. You'll gain hands-on experience with implicit and explicit waits, crucial for dynamic web applications. The course also covers cross-browser testing and data-driven testing, guiding you through setting up projects for different browsers, running headless tests, and implementing data-driven approaches using CSV and Excel files. By the end, you'll understand the Page Object Model, Selenium Grid, and standalone server, equipping you to scale your automation tests effectively. Designed for QA professionals and software testers with basic web technology knowledge, the course enhances skills in automated testing using Selenium, with a fundamental knowledge of Java recommended.
In this module, we will embark on a thorough exploration of Java Collections. We begin with an overview of the necessity and significance of collections in Java programming. Next, we dive into the List interface, covering its importance in maintaining order and position, and exploring the differences between ArrayList, LinkedList, and Vector implementations. We will master methods for manipulating lists and selecting optimal iteration techniques. The module also includes comprehensive coverage of sorting collections using built-in methods and custom comparators. Finally, we will delve into the Set, Queue, and Map interfaces, understanding their unique characteristics and practical applications. This module is packed with hands-on exercises and real-world scenarios to solidify your understanding and proficiency in using Java Collections.
What's included
29 videos2 readings
29 videosβ’Total 139 minutes
- Step 01 - Java Collections - Section Overview with Need for Collectionsβ’3 minutes
- Step 02 - List Interface - Introduction - Position is Kingβ’7 minutes
- Step 03 - List Interface - Immutability and Introduction of Implementations β Arrayβ’5 minutes
- Step 04 - List Interface Implementations - ArrayList Versus LinkedListβ’6 minutes
- Programming Tip - Teach Yourselves Programming in 10 Yearsβ’2 minutes
- Step 05 - List Interface Implementations - ArrayList Versus Vectorβ’4 minutes
- Step 06 - List Interface - Methods to Add, Remove, and Change Elements and Listsβ’7 minutes
- Step 07 - List and ArrayList - Iterating Around Elementsβ’3 minutes
- Step 08 - List and ArrayList - Choosing Iteration Approach for Printing and Deletingβ’7 minutes
- Step 09 - List and ArrayList - Puzzles - Type Safety and Removing Integersβ’7 minutes
- Step 10 - List and ArrayList - Sorting - Introduction to Collections Sort Staticβ’9 minutes
- Step 11 - List and ArrayList - Sorting - Implementing Comparable Interfaceβ’3 minutes
- Step 12 - List and ArrayList - Sorting - Providing Flexibility by Implementing Cβ’6 minutes
- Step 13 - List and ArrayList - A Summaryβ’2 minutes
- Step 14 - Set Interface - Introduction - No Duplicationβ’4 minutes
- Step 15 - Understanding Data Structures - Array, LinkedList, and Hashingβ’6 minutes
- Step 16 - Understanding Data Structures - Tree - Sorted Orderβ’3 minutes
- Step 17 - Set Interface β Hands-On - HashSet, LinkedHashSet, and TreeSetβ’5 minutes
- Step 18 - Set Interface - Exercise - Find Unique Characters in a Listβ’5 minutes
- Step 19 - TreeSet - Methods from NavigableSet - floor,lower,upper, subSet, headβ’5 minutes
- Step 20 - Queue Interface - Process Elements in Orderβ’2 minutes
- Step 21 - Introduction to PriorityQueue - Basic Methods and Customized Priorityβ’7 minutes
- Step 22 - Map Interface - An Introduction - Key and Valueβ’3 minutes
- Step 23 - Map Interface - Implementations - HashMap, HashTable, LinkedHashMapβ’3 minutes
- Step 24 - Map Interface - Basic Operationsβ’5 minutes
- Step 25 - Map Interface - Comparison - HashMap Versus LinkedHashMap Versus TreeMapβ’4 minutes
- Step 26 - Map Interface - Exercise - Count Occurrences of Characters and Wordsβ’9 minutes
- Step 27 - TreeMap - Methods from NavigableMap - floorKey, higherKey, firstEntryβ’4 minutes
- Step 28 - Java Collections - Conclusion with Three Tipsβ’3 minutes
2 readingsβ’Total 20 minutes
- Introduction to the Course 'Advanced Java Concepts and Collections'β’10 minutes
- Full Specialization Resourcesβ’10 minutes
In this module, we will delve into the powerful world of Java Generics. We begin by exploring the fundamental reasons for using generics, highlighting their role in creating type-safe and reusable code. Next, we implement generics in a custom list to see their practical benefits firsthand. We then extend these custom lists with generic return methods to further enhance flexibility. Through engaging puzzles, we will uncover the restrictions and capabilities of generics, especially with bounded types. Finally, we will apply wildcards to navigate complex generic scenarios, mastering both upper and lower bounds to achieve robust and adaptable coding solutions.
What's included
5 videos
5 videosβ’Total 27 minutes
- Step 01 - Introduction to Generics - Why Do We Need Generics?β’6 minutes
- Step 02 - Implementing Generics for the Custom Listβ’5 minutes
- Step 03 - Extending Custom List with a Generic Return Methodβ’2 minutes
- Step 04 - Generics Puzzles - Restrictions with Extends and Generic Methodsβ’8 minutes
- Step 05 - Generics and WildCards - Upper Bound and Lower Boundβ’6 minutes
In this module, we will explore the fundamentals of exception handling in Java. We start by understanding the mindset required during exception handling, followed by a deep dive into common exceptions like 'NullPointerException' and how to interpret stack traces. We will then cover the basic try-catch mechanism, the significance of the finally block, and the concept of exception hierarchies. Through hands-on puzzles, we will differentiate between checked and unchecked exceptions and learn to throw custom exceptions. Additionally, we will explore advanced features like try-with-resources introduced in Java 7. This module concludes with a discussion on best practices to ensure your code is resilient and well-structured.
What's included
14 videos1 assignment
14 videosβ’Total 67 minutes
- Step 01 - Introduction to Exception Handling - Your Thought Process During Exceptionβ’3 minutes
- Step 02 - Basics of Exceptions - NullPointerException and StackTraceβ’6 minutes
- Step 03 - Basics of Handling Exceptions - try and catchβ’5 minutes
- Step 04 - Basics of Handling Exceptions - Exception Hierarchy, Matching, and Catchβ’7 minutes
- Step 05 - Basics of Handling Exceptions - Need for finallyβ’6 minutes
- Step 06 - Basics of Handling Exceptions β Puzzlesβ’4 minutes
- Step 07 - Checked Exceptions Versus Unchecked Exceptions - An Exampleβ’6 minutes
- Step 08 - Hierarchy of Errors and Exceptions - Checked and Runtimeβ’5 minutes
- Step 09 - Throwing an Exception - Currencies Do Not Match Runtime Exceptionβ’7 minutes
- Step 10 - Throwing a Checked Exception - Throws in Method Signature and Handlingβ’3 minutes
- Step 11 - Throwing a Custom Exception β CurrenciesDoNotMatchExceptionβ’4 minutes
- Step 12 - Write Less Code with Try with Resources - New Feature in Java 7β’3 minutes
- Step 13 - Basics of Handling Exceptions - Puzzles 2β’2 minutes
- Step 14 - Exception Handling - Conclusion with Best Practicesβ’5 minutes
1 assignmentβ’Total 15 minutes
- Assessment 1β’15 minutes
In this module, we will explore a series of valuable Java tips to enhance your coding efficiency and effectiveness. We begin by discussing the role of imports and static imports to simplify code. Next, we delve into the proper use of code blocks and the importance of the 'equals' and 'hashcode' methods in custom object comparison. We will also cover various access modifiers for classes and methods, helping you control access and visibility within your codebase. The module includes practical insights into using the final keyword for classes, methods, variables, and arguments, ensuring that you can leverage immutability where necessary. These tips are designed to refine your coding practices and make your Java programs more robust and maintainable.
What's included
12 videos
12 videosβ’Total 56 minutes
- Java Tip 01 - Imports and Static Importsβ’7 minutes
- Java Tip 02 β Blocksβ’3 minutes
- Java Tip 03 - Equals Methodβ’6 minutes
- Java Tip 04 - hashcode Methodβ’3 minutes
- Java Tip 05 - Class Access Modifiers - Public and Defaultβ’5 minutes
- Java Tip 06 - Method Access Modifiers - Public, Protected, Private, and Defaultβ’7 minutes
- Java Tip 07 - Final Classes and Final Methodsβ’5 minutes
- Java Tip 08 - Final Variables and Final Argumentsβ’3 minutes
- Java Tip 09 - Why Do We Need Static Variables?β’5 minutes
- Java Tip 09 - Why Do We Need Static Methods?β’3 minutes
- Java Tip 10 - Static Methods cannot Use Instance Methods or Variablesβ’3 minutes
- Java Tip 11 - Public Static Final β Constantsβ’6 minutes
In this module, we will explore the foundations of automated testing using Selenium, JUnit, and TestNG. Starting with an overview of Selenium, we will guide you through the installation of Selenium IDE and demonstrate how to record and replay test scenarios such as Google Search and Facebook Login. We will also introduce advanced features of Selenium IDE and present Katalon Studio as an alternative, complete with its installation and advanced capabilities. The module includes instructions for setting up a new Maven project, adding dependencies for JUnit and WebDriver, and resolving driver errors with ChromeDriverManager. We will conduct hands-on exercises to run Facebook JUnit tests and understand the background processes of Selenium automation tests. Finally, we will install the TestNG plugin, create a new project, and compare TestNG and JUnit tests to provide a comprehensive course overview.
What's included
16 videos1 assignment
16 videosβ’Total 75 minutes
- Step 01 - Getting Started with Selenium - An Overviewβ’3 minutes
- Step 02 - Installing Selenium IDEβ’3 minutes
- Step 03 - Recording and Replaying Google Search with Selenium IDEβ’5 minutes
- Step 04 - Exercise - Recording Facebook Loginβ’2 minutes
- Step 05 - Advanced Features in Selenium IDEβ’5 minutes
- Step 06 - Alternative for Selenium IDE - Katalon Studioβ’4 minutes
- Step 07 - Installing and Recording Tests with Katalon Studioβ’4 minutes
- Step 08 - Advanced Features of Katalon Studioβ’3 minutes
- Step 09 - Export Unit Tests and Set up new Maven Projectβ’6 minutes
- Step 10 - Adding Maven Dependencies for JUnit, Web Driver Manager and Web Driverβ’5 minutes
- Step 11 - Fixing Driver Error with ChromeDriverManagerβ’10 minutes
- Step 12 - Exercise - Run Facebook JUnit Testβ’4 minutes
- Step 13 - Running a Selenium Automation Test - What is happening in Backgroundβ’8 minutes
- Step 14 - Install TestNG Plugin and Create New Project with TestNGβ’5 minutes
- Step 15 - Export and Run TestNG Test for Google and Facebookβ’3 minutes
- Step 16 - Comparing TestNG and JUnit Tests and Course Overviewβ’5 minutes
1 assignmentβ’Total 15 minutes
- Assessment 2β’15 minutes
In this module, we will conduct an in-depth comparison between TestNG and JUnit, two popular testing frameworks. We begin by exploring the fundamental differences and similarities between them. Next, we will create unit tests for a SimpleClass using JUnit, adding assertions to validate the test cases. Through practical exercises, we will write additional unit test scenarios to solidify our understanding. We will then demonstrate how to write Selenium JUnit automation tests in multiple parts, highlighting the use of the WebDriver interface. Utilizing JUnit annotations like @Before and @After, we will reduce code duplication in test setups. The module then transitions to TestNG, where we convert our unit tests from JUnit to TestNG and explore its advanced features, including XML suite configuration, detailed test reports, parameterized tests, and parallel test execution. This module aims to provide a comprehensive understanding of both frameworks and their applications in automated testing.
What's included
13 videos
13 videosβ’Total 83 minutes
- Step 01 - Introduction to TestNG Versus JUnitβ’5 minutes
- Step 02 - Creating a Unit Test for SimpleClassβ’6 minutes
- Step 03 - Adding Asserts to Unit Testβ’5 minutes
- Step 04 - Exercise - Write More Unit Test Scenariosβ’3 minutes
- Step 05 - Writing Selenium JUnit Automation Test for Google - Part 1β’10 minutes
- Step 06 - Writing Selenium JUnit Automation Test for Google - Part 2β’7 minutes
- Step 07 - Exploring WebDriver Interfaceβ’7 minutes
- Step 08 - Writing Selenium JUnit Automation Test for Google - Part 3β’6 minutes
- Step 09 - Reducing Duplication with @Before and @After JUnit Annotationsβ’10 minutes
- Step 10 - Time for TestNG - Convert Unit Test to TestNGβ’8 minutes
- Step 11 - TestNG Advanced Features - XML Suite and Test Reportsβ’7 minutes
- Step 12 - TestNG Advanced Features - Running Tests with Parameters Defined in XMβ’7 minutes
- Step 13 - TestNG Advanced Features - Running Tests in Parallelβ’3 minutes
In this module, we will delve into the fundamentals of HTML and CSS, exploring their roles in web development. You will learn how the web functions, set up a development environment, and create your first HTML file. We will also cover basic tags, formatting, W3C standards, and the organization of content using lists and tables.
What's included
39 videos1 reading3 assignments
39 videosβ’Total 247 minutes
- Step 01 - Why Should You Learn HTML and CSSβ’6 minutes
- Step 02 - How Does the Web Work - Request, Response, HTML, and Browserβ’6 minutes
- Step 03 - Installing Web Editor β Bracketsβ’6 minutes
- Step 04 - First HTML File - Tags, HTML, Head, and Bodyβ’8 minutes
- Step 05 - Basic HTML Tags - Paragraph, Div, Heading - H1 to H6β’11 minutes
- Step 06 - Formatting Tags - Bold, Italicized, and Quotesβ’6 minutes
- Step 07 - Using Tags without Closing Tag - BR and HRβ’5 minutes
- Step 08 - W3C Standards for HTMLβ’6 minutes
- Step 09 - Creating a List of Elements with UL LI and OLβ’6 minutes
- Step 10 - Organizing Your Data Using Tablesβ’7 minutes
- Step 11 - Organizing Your Data Using Tables - Exercise Solutionsβ’3 minutes
- Step 12 - HTML Attributes and Links - Absolute and Relativeβ’9 minutes
- Step 13 - Image Tag in HTML - Local and Internet Linksβ’6 minutes
- Step 14 - Introduction to Live Preview Feature in Bracketsβ’3 minutes
- Step 15 - Nesting of Divs and Understanding the align Attributeβ’8 minutes
- Step 16 - Getting Data from Users Using Forms - Text and TextAreaβ’10 minutes
- Step 17 - Attributes on Text Elements - Size, maxlength, valueβ’6 minutes
- Step 18 - Choosing Among Multiple Options Using Radio Buttonsβ’6 minutes
- Step 19 - Choosing Among Multiple Options Using Select Boxβ’6 minutes
- Step 20 - Choosing Yes or No with Check Boxβ’4 minutes
- Step 21 - Submitting a Form and Understanding GET and POSTβ’10 minutes
- Step 22 - Introduction to Framesβ’4 minutes
- Step 23 - Miscellaneous - Password Fields, File Input, and Multi Select Boxβ’6 minutes
- Step 24 - Introduction to CSSβ’10 minutes
- Step 25 - CSS for Input, Select, and Text Areaβ’4 minutes
- Step 26 - CSS Attributes with Color, Background Colorβ’6 minutes
- Step 27 - Grouping Form Elements with fieldsetβ’7 minutes
- Step 28 - Styling Fieldsets with CSSβ’3 minutes
- Step 29 - Exercise - Styling Listsβ’2 minutes
- Step 30 - Using an External CSS Fileβ’5 minutes
- Step 31 - Understanding Class in CSSβ’9 minutes
- Step 32 - Making the Best Use of Class in CSS and Multiple Classesβ’7 minutes
- Step 33 - Using id with CSSβ’6 minutes
- Step 34 - Understanding CSS Selectors and Testing Using the $$ Functionβ’9 minutes
- Step 35 - CSS Selectors - Identifying Input Elementβ’7 minutes
- Step 36 - Introduction to XPath Expressions - Absolute and Relativeβ’5 minutes
- Step 37 - Using id and Class in XPath Expressionsβ’6 minutes
- Step 38 - Using XPath on the Forms Pageβ’7 minutes
- Step 39 - A Review of XPat Expressions and CSS Selectorsβ’6 minutes
1 readingβ’Total 10 minutes
- Conclusion to the Course 'Advanced Java Concepts and Collections'β’10 minutes
3 assignmentsβ’Total 90 minutes
- Full Course Practice Assessmentβ’15 minutes
- Assessment 3β’15 minutes
- Full Course Assessmentβ’60 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Offered by
Explore more from Software Development
- Status: Free Trial
Course
- Status: Free Trial
Course
- Status: PreviewE
EDUCBA
Course
- Status: Free TrialL
LearnKartS
Course
Why people choose Coursera for their career
Frequently asked questions
Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.
If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. Youβll be able to submit assignments once the session starts.
Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. Youβll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.
More questions
Financial aid available,
