Book Image

Java Fundamentals

By : Gazihan Alankus, Rogério Theodoro de Brito, Basheer Ahamed Fazal, Vinicius Isola, Miles Obare
Book Image

Java Fundamentals

By: Gazihan Alankus, Rogério Theodoro de Brito, Basheer Ahamed Fazal, Vinicius Isola, Miles Obare

Overview of this book

Since its inception, Java has stormed the programming world. Its features and functionalities provide developers with the tools needed to write robust cross-platform applications. Java Fundamentals introduces you to these tools and functionalities that will enable you to create Java programs. The book begins with an introduction to the language, its philosophy, and evolution over time, until the latest release. You'll learn how the javac/java tools work and what Java packages are - the way a Java program is usually organized. Once you are comfortable with this, you'll be introduced to advanced concepts of the language, such as control flow keywords. You'll explore object-oriented programming and the part it plays in making Java what it is. In the concluding chapters, you'll get to grips with classes, typecasting, and interfaces, and understand the use of data structures, arrays, strings, handling exceptions, and creating generics. By the end of this book, you will have learned to write programs, automate tasks, and follow advanced courses on algorithms and data structures or explore more advanced Java courses.
Table of Contents (12 chapters)
Java Fundamentals
Preface

Set and Uniqueness in Set


In this topic, we are going to learn the logic behind a set that finds the uniqueness of an object being added and understand the importance of two object-level methods.

The magic lies in two methods of the Object class

  • hashCode()

  • equals()

Basic Rules for the equals() and hashCode() Methods

  • Two objects can be identical only when the value returned using the hashcode() method is identical and the equal() method returns true.

  • If the two objects return the same hashCode() value, it doesn't necessarily mean both objects are the same (as hash values may collide with other objects as well). In that case, it's necessary to find the equality by calling equals() and verifying the identity.

  • We can't use hashCode() alone to find out the equality; we need to use equals() as well to do this. However, hashCode() alone is enough to find the inequality. If the hashCode() returns different values, it's safe to consider the objects different.

Adding an Object to a Set

Though many things...