This document provides an overview of core Java basics. It discusses:
- The origins and evolution of Java from its initial release in 1995 to current versions.
- Key characteristics of Java including being object-oriented, platform independent, simple, robust, and distributed.
- The Java environment setup and basic syntax including classes, objects, and methods.
- A simple "Hello World" example Java program.
- Primitive data types in Java like int, float, boolean and how they differ.
- Object-oriented programming concepts in Java such as abstraction, encapsulation, inheritance and polymorphism.
2. Java – Overview
– Java programming language was originally developed by Sun Microsystems
which was initiated by James Gosling and released in 1995 as core component
of Sun Microsystems' Java platform (Java 1.0 [J2SE]).
– The latest release of the Java Standard Edition is Java SE 8. With the
advancement of Java and its widespread popularity, multiple configurations
were built to suit various types of platforms. For example: J2EE for Enterprise
Applications, J2ME for Mobile Applications.
– The new J2 versions were renamed as Java SE, Java EE, and Java ME
respectively. Java is guaranteed to be Write Once, Run Anywhere.
3. Java is:
– Object Oriented: In Java, everything is an Object. Java can be easily extended
since it is based on the Object model.
– Platform Independent: Unlike many other programming languages including
C and C++, when Java is compiled, it is not compiled into platform specific
machine, rather into platform independent byte code. This byte code is
distributed over the web and interpreted by the Virtual Machine (JVM) on
whichever platform it is being run on.
– Simple: Java is designed to be easy to learn. If you understand the basic
concept of OOP Java, it would be easy to master.
4. – Architecture-neutral: Java compiler generates an architecture-neutral object file format, which makes the
compiled code executable on many processors, with the presence of Java runtime system.
– Portable: Being architecture-neutral and having no implementation dependent aspects of the specification makes
Java portable. Compiler in Java is written in ANSI C with a clean portability boundary, which is a POSIX subset.
– Robust: Java makes an effort to eliminate error prone situations by emphasizing mainly on compile time error
checking and runtime checking.
– Multithreaded: With Java's multithreaded feature it is possible to write programs that can perform many tasks
simultaneously. This design feature allows the developers to construct interactive applications that can run
smoothly.
– Interpreted: Java byte code is translated on the fly to native machine instructions and is not stored anywhere.
The development process is more rapid and analytical since the linking is an incremental and light-weight process.
– High Performance: With the use of Just-In-Time compilers, Java enables high performance.
5. – Distributed: Java is designed for the distributed environment of the internet.
– Dynamic: Java is considered to be more dynamic than C or C++ since it is
designed to adapt to an evolving environment. Java programs can carry
extensive amount of run-time information that can be used to verify and
resolve accesses to objects on run-time.
6. Java - Environment Setup
– Assuming you have installed Java in c:Program Filesjavajdk directory:
– Right-click on 'My Computer' and select 'Properties‘ Advanced System
Settings.
– Click the 'Environment variables' button under the 'Advanced' tab.
– Now, alter the 'Path' variable so that it also contains the path to the Java
executable.
– Example, if the path is currently set to 'C:WINDOWSSYSTEM32', then update
your path to read 'C:WINDOWSSYSTEM32;c:Program Filesjavajdkbin'.
7. Java – Basic Syntax
– When we consider a Java program, it can be defined as a collection of objects that
communicate via invoking each other's methods.
– Object - Objects have states and behaviors. Example: A dog has states - color, name,
breed as well as behavior such as wagging their tail, barking, eating. An object is an
instance of a class.
– Class - A class can be defined as a template/blueprint that describes the
behavior/state that the object of its type supports.
– Methods - A method is basically a behavior. A class can contain many methods. It is
in methods where the logics are written, data is manipulated and all the actions are
executed.
8. First Java Program
– Save the file as: MyFirstJavaProgram.java.
public class MyFirstJavaProgram {
/* This is my first java program.
* This will print 'Hello World' as the output
*/
public static void main(String []args) {
System.out.println("Hello World"); // prints Hello World
}
}
10. Program Execution
Compile Java Program From Command Prompt
– C:> javac MyFirstJavaProgram.java
– C:> java MyFirstJavaProgram
O/P: Hello World
Compilation and execution of a Java program is two step process. During
compilation phase Java compiler compiles the source code and generates
bytecode. This intermediate bytecode is saved in form of a .class file. In second
phase, Java virtual machine (JVM) also called Java interpreter takes the .class as
input and generates output by executing the bytecode
11. Difference between JDK, JRE and JVM
– JVM
– JVM (Java Virtual Machine) is an abstract machine. It is a specification that provides runtime
environment in which java bytecode can be executed.
– JVMs are available for many hardware and software platforms. JVM, JRE and JDK are platform
dependent because configuration of each OS differs. But, Java is platform independent.
– The JVM performs following main tasks:
– Loads code
– Verifies code
– Executes code
– Provides runtime environment
12. – JRE
– JRE is an acronym for Java Runtime Environment.It is used to provide runtime
environment.It is the implementation of JVM. It physically exists. It contains set
of libraries + other files that JVM uses at runtime.
13. – JDK
– JDK is an acronym for Java Development Kit.It physically exists.It contains JRE +
development tools.
17. byte
– byte:
– This can hold whole number between -128 and 127. Mostly used to save
memory and when you are certain that the numbers would be in the limit
specified by byte data type.
Default size of this data type: 1 byte.
Default value: 0
18. – class JavaExample {
– public static void main(String[] args) {
–
– byte num;
– num = 113;
– System.out.println(num);
– }
– }
19. short
– short:
– This is greater than byte in terms of size and less than integer. Its range is -
32,768 to 32767.
Default size of this data type: 2 byte
20. – class JavaExample {
– public static void main(String[] args) {
–
– short num = 45678;;
– System.out.println(num);
– }
– }
21. int
– int: Used when short is not large enough to hold the number, it has a wider
range: -2,147,483,648 to 2,147,483,647
Default size: 4 byte
Default value: 0
Example:
22. – class JavaExample {
– public static void main(String[] args) {
–
– int num = 45678;;
– System.out.println(num);
– }
– }
23. long:
– Used when int is not large enough to hold the value, it has wider range than int
data type, ranging from -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807.
size: 8 bytes
Default value: 0
Example:
24. – class JavaExample {
– public static void main(String[] args) {
–
– long num = -12332252626L;
– System.out.println(num);
– }
– }
32. OOPs (Object Oriented
Programming System)
Object-oriented programming System(OOPs) is a programming paradigm
based on the concept of “objects” that contain data and methods. The primary purpose of object-
oriented programming is to increase the flexibility and maintainability of programs. Object oriented
programming brings together data and its behaviour(methods) in a single location(object) makes it
easier to understand how a program works. We will cover each and every feature of OOPs in detail
so that you won’t face any difficultly understanding OOPs Concepts.
33. OOPs Concepts
– What is an Object
– What is a class
– Constructor in Java
– Object Oriented Programming Features
I. Abstraction
II. Encapsulation
III. Inheritance
IV. Polymorphism
– Abstract Class and Methods
– Interfaces in Java
36. What is a class
– A class is a template or blueprint that is used to create objects.
– Class representation of objects and the sets of operations that can be applied to such objects.
– Class consists of Data members and methods.
– Primary purpose of a class is to held data/information. This is achieved with attributes which is also
known as data members.
– Example:
37. – A class in Java can contain:
1. fields
2. Constructors
3. static blocks
4. Methods
5. instances
38. Example of class
– public class MyFirstJavaExample{
– int a;
– int b;
–
– public int add() {
– //Write code here
– }
– public int sub() {
– //Write code here
– }
– ...
– ...
– }
41. Basic Syntax
– About Java programs, it is very important to keep in mind the following points.
– Case Sensitivity - Java is case sensitive, which means identifier Hello and hello would have different meaning in Java.
– Class Names - For all class names the first letter should be in Upper Case. If several words are used to form a name of the
class, each inner word's first letter should be in Upper Case.
– Example: class MyFirstJavaClass
– Method Names - All method names should start with a Lower Case letter. If several words are used to form the name of
the method, then each inner word's first letter should be in Upper Case.
– Example: public void myMethodName()
– Program File Name - Name of the program file should exactly match the class name. When saving the file, you should save
it using the class name (Remember Java is case sensitive) and append '.java' to the end of the name (if the file name and
the class name do not match, your program will not compile). Example: Assume 'MyFirstJavaProgram' is the class name.
Then the file should be saved as 'MyFirstJavaProgram.java'
42. Types of Variable
– There are three types of variables in java:
1. local variable
2. instance variable
3. static variable
43. – Local variables: Variables defined inside methods, constructors or blocks are
called local variables. The variable will be declared and initialized within the
method and the variable will be destroyed when the method has completed.
– Instance variables: Instance variables are variables within a class but outside
any method. These variables are initialized when the class is instantiated.
Instance variables can be accessed from inside any method, constructor or
blocks of that particular class.
44. – Class variables: Class variables are variables declared within a class, outside any
method, with the static keyword.
– class A{
– int data=50;//instance variable
– static int m=100;//static variable
– void method(){
– int n=90;//local variable
– }
– }//end of class
45. Java Language Keywords
– Here is a list of keywords in the Java programming language. You cannot use any
of the following as identifiers in your programs. The keywords const and goto
are reserved, even though they are not currently used. true, false, and null
might seem like keywords, but they are actually literals; you cannot use them as
identifiers in your programs.
46. abstract continue for new switch
assert*** default goto* package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum**** instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp** volatile
const* float native super while
* not used
47. Constructor in Java
– Constructor in java is a special type of method that is used to initialize the
object.
– Java constructor is invoked at the time of object creation. It constructs the
values i.e. provides data for the object that is why it is known as constructor.
48. Rules for creating java constructor
– here are basically two rules defined for the constructor.
1. Constructor name must be same as its class name
2. Constructor must have no explicit return type
49. Types of java constructors
– There are two types of constructors:
1. Default constructor (no-arg constructor)
2. Parameterized constructor
52. Difference between constructor
and method in java
Java Constructor Java Method
Constructor is used to initialize the state of
an object.
Method is used to expose behaviour of an
object.
Constructor must not have return type. Method must have return type.
Constructor is invoked implicitly. Method is invoked explicitly.
The java compiler provides a default
constructor if you don't have any
constructor.
Method is not provided by compiler in any
case.
Constructor name must be same as the class
name.
Method name may or may not be same as
class name.
53. Java – Static Class, Block,
Methods and Variables
– In a class we can have
1. static variables
2. static methods
3. static blocks of code.
54. static variables
– It is a variable which belongs to the class and not to object(instance)
– Static variables are initialized only once , at the start of the execution . These
variables will be initialized first, before the initialization of any instance
variables
– A single copy to be shared by all instances of the class
– A static variable can be accessed directly by the class name and doesn’t need
any object
– Syntax : <class-name>.<variable-name>
55. – public class StaticExample {
– static int num;
– static String mystr;
– static{
– num = 97;
– mystr = "Static keyword in Java";
– }
– public static void m1(){
– System.out.println("in m1 methode");
– }
56. Static block
– The static block, is a block of statement inside a Java class that will be executed
when a class is first loaded in to the JVM
– class Test{
– static {
– //Code goes here
– }
– }
57. – public class StaticExample {
– static int num;
– static String mystr;
– static{
– num = 97;
– mystr = "Static keyword in Java";
– }
– }
60. Different types of methods in java
1. static methods
2. Non-static methods/instance methods
Public Class StaticExp{
public static void add(){
}
}
61. Java Static Method
– It is a method which belongs to the class and not to the object(instance)
– A static method can access only static data. It can not access non-static data
(instance variables)
– A static method can call only other static methods and can not call a non-static
method from it.
– A static method can be accessed directly by the class name and doesn’t need
any object
– Syntax : <class-name>.<method-name>
– A static method cannot refer to "this" or "super" keywords in anyway
62. Instance methods
– Methods and variables that are not declared as static are known as instance
methods and instance variables. To refer to instance methods and variables, you
must instantiate the class first means you should create an object of that class
first.For static you don't need to instantiate the class u can access the methods and
variables with the class name
– Example
– Public Class Persion{
– Public void add(){
– }
– }
63. – Person person1 = new Person(); //instantiating
– person1.add(); //accessing non-static method.
64. Inheritance in Java
– Inheritance in java is a mechanism in which one object acquires all the
properties and behaviors of parent object.
– The idea behind inheritance in java is that you can create new classes that are
built upon existing classes. When you inherit from an existing class, you can
reuse methods and fields of parent class, and you can add new methods and
fields also.
– Inheritance represents the IS-A relationship, also known as parent-child
relationship
67. JAVA will not support
Multiple,Hybrid In inheritance
68. Syntax of Java Inheritance
– class Subclass-name extends Superclass-name
– {
– //methods and fields
– }
69. Why multiple inheritance is not
supported in java?
– To reduce the complexity and simplify the language, multiple inheritance is not
supported in java.
– Consider a scenario where A, B and C are three classes. The C class inherits A
and B classes. If A and B classes have same method and you call it from child
class object, there will be ambiguity to call method of A or B class.
– Since compile time errors are better than runtime errors, java renders compile
time error if you inherit 2 classes. So whether you have same method or
different, there will be compile time error now.
71. class C extends A,B{//suppose if it were
•
• Public Static void main(String args[]){
• C obj=new C();
• obj.msg();//Now which msg() method would be invoked?
•}
•}
72. This keyword in java
– There can be a lot of usage of java this keyword. In java, this is a reference
variable that refers to the current object.
73. Usage of java this keyword
– Here is given the 6 usage of java this keyword.
– this can be used to refer current class instance variable.
– this can be used to invoke current class method (implicitly)
– this() can be used to invoke current class constructor.
– this can be passed as an argument in the method call.
– this can be passed as argument in the constructor call.
– this can be used to return the current class instance from the method.
74. this: to refer current class
instance variable
– The this keyword can be used to refer current class instance variable. If there is
ambiguity between the instance variables and parameters, this keyword
resolves the problem of ambiguity
75. Understanding the problem
without this keyword
– class Student{
– int rollno;
– String name;
– float fee;
– Student(int rollno,String name,float fee){
– rollno=rollno;
– name=name;
– fee=fee;
– }
77. Solution of the above problem
by this keyword
– class Student{
– int rollno;
– String name;
– float fee;
– Student(int rollno,String name,float fee){
– this.rollno=rollno;
– this.name=name;
– this.fee=fee;
– }
– void display(){System.out.println(rollno+" "+name+" "+fee);}
– }
78. this: to invoke current class
method
– You may invoke the method of the current class by using the this keyword. If
you don't use the this keyword, compiler automatically adds this keyword while
invoking the method. Let's see the example
80. this() : to invoke current class
constructor
– The this() constructor call can be used to invoke the current class constructor. It
is used to reuse the constructor. In other words, it is used for constructor
chaining.
81. – class A{
– A(){System.out.println("hello a");}
– A(int x){
– this();
– System.out.println(x);
– }
– }
– P s v main(String args[]){A a=new A(10); }
82. Call to this() must be the first
statement in constructor
– Student(){ //wrong example
– System.out.println(“in 0 args constructor”)
– }
– Student(int a){
– System.out.println(“in 0 args constructor”)
– this();//C.T.Error
– }
83. – Student(){ //correct example
– System.out.println(“in 0 args constructor”)
– }
– Student(int a){
– this(); //this should in first line
– System.out.println(“in 0 args constructor”)
–
– }
84. this keyword can be used to
return current class instance
– We can return this keyword as an statement from the method. In such case,
return type of the method must be the class type (non-primitive). Let's see the
example:
– return_type method_name(){
– return this;
– }
85. – public class Example2 {
– public Example2 xyz1(){
– System.out.println("from xyz1 methode "+this);
– return this;
– }
– }
86. – public class Test345 {
– public static void main(String[] args) {
– // TODO Auto-generated method stub
– Example2 example2=new Example2();
– System.out.println("------------->>>"+example2);
– example2. xyz1();
– }
87. super keyword in java
– The super keyword in java is a reference variable which is used to refer
immediate parent class object.
– Whenever you create the instance of subclass, an instance of parent class is
created implicitly which is referred by super reference variable.
88. Usage of java super Keyword
– super can be used to refer immediate parent class instance variable.
– super can be used to invoke immediate parent class method.
– super() can be used to invoke immediate parent class constructor.
89. super is used to refer immediate
parent class instance variable
– class A {
– String color="white";
– }
– class B extends A{
– String color="black";
– void printColor(){
– System.out.println(color);
– System.out.println(super.color);
– }
– }
90. super can be used to invoke parent
class method
– class A {
– void M1(){System.out.println("insuper M1..");}
– }
– class B extends A{
– void M1(){System.out.println(" in subM1..");}
– void M1(){System.out.println(" in subM2..");}
– void C(){
– super.m1();
–
– }
– }
91. – class TestSuper2{
– public static void main(String args[]){
– B b=new B();
– b.C();
– }}
92. super is used to invoke parent
class constructor
– class A {
– A(){System.out.println("in M1..");}
– }
– class B extends A{
– super();
– B() {System.out.println("in M1..");}
–
–
– }
– }
93. – class TestSuper2{
– public static void main(String args[]){
– B b=new B();
–
– }}
– super() is added in each class constructor automatically by compiler if there is
no super() or this().
94. Final Keyword In Java
– The final keyword in java is used to restrict the user. The java final keyword can
be used in many context. Final can be:
– variable
– method
– class
95. Java final variable example
– class A{
– final int a=90;//final variable
– void m1(){
– a=400;
– }
– public static void main(String args[]){
– A obj=new A();
– obj.m1();
– }
– }//end of class //compalation error
96. – If you make any variable as final, you cannot change the value of final variable(It
will be constant).
97. Java final method
– If you make any method as final, you cannot override it.
– class A{
– final public void m1()
– }
– class B extends A{
– public void m2()
– }
98. Java final class
– If you make any class as final, you cannot extend it
– final class A{
– final public void m1()
– }
– class B extends A{
– public void m2()
– } Output:Compile Time Error
99. Polymorphism
– Polymorphism is one of the OOPs feature that allows us to perform a single
action in different ways. For example, lets say we have a class Animal that has a
method sound(). Since this is a generic class so we can’t give it a
implementation like: Roar, Meow, Oink etc. We had to give a generic message
100. Method Overloading in Java
– If a class has multiple methods having same name but different in parameters,
it is known as Method Overloading.
101. – If we have to perform only one operation, having same name of the methods
increases the readability of the program.
– Suppose you have to perform addition of the given numbers but there can be
any number of arguments, if you write the method such as a(int,int) for two
parameters, and b(int,int,int) for three parameters then it may be difficult for
you as well as other programmers to understand the behavior of the method
because its name differs.
– So, we perform method overloading to figure out the program quickly.
102. Advantage of method
overloading
– Method overloading increases the readability of the program.
– Example
– void add(int a)
– void add(int a,int b)
– void add(int a,int b,int c)
103. Different ways to overload the
method
There are two ways to overload the method in java
– By changing number of arguments
– By changing the data type
– In java, Method Overloading is not possible by changing the return type of the
method only
104. Method Overloading: changing
no. of arguments
– class Add{
– static int add(int a,int b){return a+b;}
– static int add(int a,int b,int c){return a+b+c;}
– }
– class TestOverloading1{
– public static void main(String[] args){
– System.out.println(Add.add(11,11));
– System.out.println(Add.add(11,11,11));
– }}
105. Method Overloading: changing
data type of arguments
– class Add{
– static int add(int a, int b){return a+b;}
– static double add(double a, double b){return a+b;}
– }
106. Why Method Overloading is not possible by
changing the return type of method only
– In java, method overloading is not possible by changing the return type of the
method only because of ambiguity
107. – class Adder{
– static int add(int a,int b){return a+b;}
– static double add(int a,int b){return a+b;}
– }
108. Method Overriding in Java
– If subclass (child class) has the same method as declared in the parent class, it is
known as method overriding in java.
– In other words, If subclass provides the specific implementation of the method
that has been provided by one of its parent class, it is known as method
overriding.
109. Usage of Java Method
Overriding
– Method overriding is used to provide specific implementation of a method that
is already provided by its super class.
– Method overriding is used for runtime polymorphism
110. Rules for Java Method
Overriding
– method must have same name as in the parent class
– method must have same parameter as in the parent class.
– must be IS-A relationship (inheritance).
111. Example of method overriding
– class A {
– void m1(){System.out.println(“from class A m1 method");}
– }
– class B extends A{
– void m1 (){System.out.println(" from class B m1 method ");}
112. Encapsulation
– Encapsulation simply means binding object state(fields) and
behaviour(methods) together. If you are creating class, you are doing
encapsulation
113. What is encapsulation?
– The whole idea behind encapsulation is to hide the implementation details from
users. If a data member is private it means it can only be accessed within the
same class. No outside class can access private data member (variable) of other
class.
– However if we setup public getter and setter methods to update (for example
void setEmpId(int empId))and read (for example int getEmpId()) the private
data fields then the outside class can access those private data fields via public
methods.
114. Example of Encapsulation in
Java
– class EncapsulationDemo{
– private String empName;
– private int empAge;
– public String getEmpName(){
– return empName;
– }
– public String getEmpName(){
– return empName;
– }}
115. – public class EncapsTest{
– public static void main(String args[]){
– EncapsulationDemo obj = new EncapsulationDemo();
– obj.setEmpName(“xyz");
– obj.setEmpAge(10);
– System.out.println("Employee Name: " + obj.getEmpName());
– System.out.println("Employee Age: " + obj.getEmpAge());
– }
– }
116. Advantage of Encapsulation in
java
– By providing only setter or getter method, you can make the class read-only or
write-only
– It improves maintainability and flexibility and re-usability
– User would not be knowing what is going on behind the scene. They would only
be knowing that to update a field call set method and to read a field call get
method but what these set and get methods are doing is purely hidden from
them.
117. Simple example of encapsulation in
java
– package com.demo;
– public class Student{
– private String name;
–
– public String getName(){
– return name;
– }
– public void setName(String name){
– this.name=name
– }
– }
118. – //save as Test.java
– package com.demo;
– class Test{
– public static void main(String[] args){
– Student s=new Student();
– s.setName(“xyz");
– System.out.println(s.getName());
– }
– }
120. Abstraction
– Abstraction is a process of hiding the implementation details and showing only
functionality to the user.
– Another way, it shows only important things to the user and hides the internal
details for example sending sms, you just type the text and send the message.
You don't know the internal processing about the message delivery.
– Abstraction lets you focus on what the object does instead of how it does it.
121. – Ways to achieve Abstraction
– There are two ways to achieve abstraction in java
– Abstract class (0 to 100%)
– Interface (100%)
122. Interface
– Interface looks like a class but it is not a class. An interface can have methods
and variables just like the class but the methods declared in interface are by
default abstract (only method signature, no body). Also, the variables declared
in an interface are public, static & final by default
123. What is the use of interface in Java
– As mentioned above they are used for full abstraction. Since methods in
interfaces do not have body, they have to be implemented by the class before
you can access them. The class that implements interface must implement all
the methods of that interface. Also, java programming language does not allow
you to extend more than one class, However you can implement more than one
interfaces in your class
124. – Syntax:
– interface MyInterface
– {
– //All the methods are public abstract by default
–
– public void method1();
– public void method2();
– }
125. how a class implements an
interface
– It has to provide the body of all the methods that are declared in interface or in
other words you can say that class has to implement all the methods of
interface.
127. – class Demo implements MyInterface
– {
– public void method1()
– { System.out.println("implementation of method1");
– }
– public void method2()
– {System.out.println("implementation of method2");
– }
– public static void main(String arg[])
– { MyInterface obj = new Demo();
– obj.method1(); } }
128. Variables declared in interface
are public, static and final by default
– interface MyInterface
– {
– int a=10;
– public void method1();
– }
– Interface variables must be initialized at the time of declaration otherwise
compiler will throw an error.
129. Advantages of interface in java:
– Without bothering about the implementation part, we can achieve the security
of implementation
– In java, multiple inheritance is not allowed, however you can use interface to
make use of it as you can implement more than one interface.
130. Abstract Class
– A class that is declared using “abstract” keyword is known as abstract class. It
can have abstract methods(methods without body) as well as concrete methods
(regular methods with body). A normal class(non-abstract class) cannot have
abstract methods
131. Abstract class declaration
– //Declaration using abstract keyword
– abstract class A{
– //This is abstract method
– abstract void myMethod();
– //This is concrete method with body
– void anotherMethod(){
– //Does something
– }
– }
132. – As we seen in the above example, there are cases when it is difficult or often
unnecessary to implement all the methods in parent class. In these cases, we
can declare the parent class as abstract, which makes it a special class which is
not complete on its own
– Abstract class cannot be instantiated which means you cannot create the object
of it. To use this class, you need to create another class that extends this this
class and provides the implementation of abstract methods, then you can use
the object of that child class to call non-abstract methods of parent class as well
as implemented methods(those that were abstract in parent but implemented
in child class).
133. – If a child does not implement all the abstract methods of abstract parent class,
then the child class must need to be declared abstract as well
134. Why can’t we create the object of
an abstract class?
– Because these classes are incomplete, they have abstract methods that have no
body
– so if java allows you to create object of this class then if someone calls the
abstract method using that object then What would happen?There would be no
actual implementation of the method to invoke.
Also because an object is concrete. An abstract class is like a template, so you
have to extend it and build on it before you can use it
135. Abstract class Example
– abstract class AbstractDemo{
– public void myMethod(){
– System.out.println("Hello");
– }
– abstract public void anotherMethod();
– }
– public class Demo extends AbstractDemo{
– public void anotherMethod() {
– System.out.print("Abstract method");
– }
136. – public static void main(String args[])
– {
– Demo obj = new Demo();
– obj.anotherMethod();
– }
139. Overview of Java Collections
The Java Collections API's provide Java developers with a set of classes and interfaces that
makes it easier to handle collections of objects. In a sense Collection's works a bit like
arrays, except their size can change dynamically, and they have more advanced behaviour
than arrays.
Rather than having to write your own collection classes, Java provides these ready-to-use
collection classes for you.
140. – Collection is an object representing a group of objects.
– Collection framework contains a set of classes and interfaces which are used for
representing and manipulating collections.
– Collection interface is the root interface from which the interfaces List,
Set,Queue are extended.
– The java.util package contains all the classes and interfaces for Collection
framework
141. – Collections in java is a framework that provides an architecture to store and
manipulate the group of objects.
– All the operations that you perform on a data such as searching, sorting,
insertion, manipulation, deletion etc. can be performed by Java Collections.
– Java Collection simply means a single unit of objects. Java Collection framework
provides many interfaces (Set, List, Queue, Deque etc.) and classes (ArrayList,
Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet etc).
143. List interface:
– List interface is an ordered collection in which duplicate elements are also
allowed.
– Elements are stored in a sequential way and hence its elements can be accessed
using the index value.
– ArrayList (C)
– LinkedList (C)
– Vector (C)
144. Java Non-generic Vs Generic
Collection
– Java collection framework was non-generic before JDK 1.5. Since 1.5, it is
generic.
– Java new generic collection allows you to have only one type of object in
collection. Now it is type safe so typecasting is not required at run time.
145. Methods of Java List Interface
Method Description
void add(int index,Object element) It is used to insert element into the invoking list at the index passed in the index.
boolean addAll(int index,Collection c) It is used to insert all elements of c into the invoking list at the index passed in the
index.
object get(int index) It is used to return the object stored at the specified index within the invoking collection.
object set(int index,Object element) It is used to assign element to the location specified by index within the invoking list.
object remove(int index) It is used to remove the element at position index from the invoking list and return the
deleted element.
ListIterator listIterator() It is used to return an iterator to the start of the invoking list.
ListIterator listIterator(int index) It is used to return an iterator to the invoking list that begins at the specified index.
146. Java List Interface
– List Interface is the subinterface of Collection.It contains methods to insert and
delete elements in index basis.It is a factory of ListIterator interface
– public interface List<E> extends Collection<E>
147. Set interface:
– Set is an unordered collection. It does not maintain any order while storing the
elements. It does not allow duplicate elements.
– Thus if one requires to store a group of unique elements, set can be used.
– HashSet (C)
– LinkedHashSet (C)
– TreeSet (C)
148. – Set is an interface which extends Collection. It is an unordered collection of
objects in which duplicate values cannot be stored.
– Basically, Set is implemented by HashSet, LinkedSet or TreeSet (sorted
representation).
– Set has various methods to add, remove clear, size, etc to enhance the usage of
this interface
149. Map interface:
– Map is an interface which maps keys to values in which each key has to be
unique.
– HashMap (C)
– Hashtable (C)
– TreeMap (C)
150. Iterator interface
– Iterator interface:
– Iterator interface is used to iterate over a collection object and retrieve the
elements one after the other
151. ListIterator interface
– ListIterator interface:
– ListIterator is similar to Iterator interface except that the elements of the
collection can be retrieved from both forward and backward direction.
152. Enumeration interface
– Enumeration interface
– Enumeration interface is similar to Iterator interface except that it cannot
remove elements and can only iterate over the collection object
153. Iterating using enhanced for
loop
– Enhanced for loop can also be used to iterate over the collection object.
– List<String> places= new LinkedList<String>();
– for(String place: places)
– System.out.println(“Place:”+place);
154. ArrayList
– Arraylist class implements List interface. It is widely used because of the
functionality and flexibility it offers. Most of the developers choose Arraylist over
Array as it’s a very good alternative of traditional java arrays. ArrayList is a resizable-
array implementation of the List interface. It implements all optional list operations,
and permits all elements, including null.
– The issue with arrays is that they are of fixed length so if it is full you cannot add any
more elements to it, likewise if there are number of elements gets removed from it
the memory consumption would be the same as it doesn’t shrink. On the other
ArrayList can dynamically grow and shrink after addition and removal of elements.
Apart from these benefits ArrayList class enables us to use predefined methods of it
which makes our task easy.
155. ArrayList class declaration
– public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomA
ccess, Cloneable, Serializable
Default Constructor
ArrayList al=new ArrayList() //default Capacity 10
It will Increases it’s Capacity by (CC*3/2)+1
156. Constructors of Java ArrayList
Constructor Description
ArrayList() It is used to build an empty array list.
ArrayList(Collection c)
It is used to build an array list that is
initialized with the elements of the collection
c.
ArrayList(int capacity)
It is used to build an array list that has the
specified initial capacity.
157. Methods of Java ArrayList
Method Description
void add(int index, Object element) It is used to insert the specified element at the specified position index in a list.
boolean addAll(Collection c)
It is used to append all of the elements in the specified collection to the end of this list, in the order that they are
returned by the specified collection's iterator.
void clear() It is used to remove all of the elements from this list.
int lastIndexOf(Object o)
It is used to return the index in this list of the last occurrence of the specified element, or -1 if the list does not contain
this element.
Object[] toArray() It is used to return an array containing all of the elements in this list in the correct order.
Object[] toArray(Object[] a) It is used to return an array containing all of the elements in this list in the correct order.
boolean add(Object o) It is used to append the specified element to the end of a list.
boolean addAll(int index, Collection c) It is used to insert all of the elements in the specified collection into this list, starting at the specified position.
Object clone() It is used to return a shallow copy of an ArrayList.
int indexOf(Object o)
It is used to return the index in this list of the first occurrence of the specified element, or -1 if the List does not contain
this element.
void trimToSize() It is used to trim the capacity of this ArrayList instance to be the list's current size.
158. ArrayList Example in Java
– public class ArrayListDemo {
– public static void main(String args[]) {
– ArrayList<String> obj = new ArrayList<String>();
– obj.add("xyz");
– obj.add("pqr");
– obj.add("xyz1");
– obj.add("pqr2");
– /* Displaying array list elements */
– System.out.println("Currently the array list has following elements:"+obj);
159. Two ways to iterate the elements of
collection in java
– There are two ways to traverse collection elements:
– By Iterator,ListIterator interfaces.
– By for-each loop.
160. Using Iterator(I)
•ArrayList<String> list=new ArrayList<String>();//Creating arraylist
• list.add("Ravi");//Adding object in arraylist
• list.add("Vijay");
• list.add("Ravi");
• list.add("Ajay");
• //Traversing list through Iterator
• Iterator itr=list.iterator();
• while(itr.hasNext()){
• System.out.println(itr.next());
• }
161. Iterating Collection through for-
each loop
– import java.util.*;
– class TestCollection2{
– public static void main(String args[]){
– ArrayList<String> al=new ArrayList<String>();
– al.add("Ravi");
– al.add("Vijay");
– al.add("Ravi");
– for(String obj:al) {
– System.out.println(obj);
– } }
162. Java LinkedList class
– Java LinkedList class uses doubly linked list to store the elements. It provides a
linked-list data structure. It inherits the AbstractList class and implements List and
Deque interfaces.
– The important points about Java LinkedList are:
– Java LinkedList class can contain duplicate elements.
– Java LinkedList class maintains insertion order.
– Java LinkedList class is non synchronized.
– In Java LinkedList class, manipulation is fast because no shifting needs to be
occurred.
– Java LinkedList class can be used as list, stack or queue
165. Constructors of Java LinkedList
Constructor Description
LinkedList() It is used to construct an empty list.
LinkedList(Collection c)
It is used to construct a list containing the
elements of the specified collection, in the
order they are returned by the collection's
iterator.
166. Methods of Java LinkedList
Method Description
void add(int index, Object element) It is used to insert the specified element at the specified position index in a list.
void addFirst(Object o) It is used to insert the given element at the beginning of a list.
void addLast(Object o) It is used to append the given element to the end of a list.
int size() It is used to return the number of elements in a list
boolean add(Object o) It is used to append the specified element to the end of a list.
boolean contains(Object o) It is used to return true if the list contains a specified element.
boolean remove(Object o) It is used to remove the first occurence of the specified element in a list.
Object getFirst() It is used to return the first element in a list.
Object getLast() It is used to return the last element in a list.
int indexOf(Object o)
It is used to return the index in a list of the first occurrence of the specified element, or -1 if the
list does not contain any element.
int lastIndexOf(Object o)
It is used to return the index in a list of the last occurrence of the specified element, or -1 if the
list does not contain any element.
167. Java LinkedList Example
– import java.util.*;
– public class LinkedListDemo{
– public static void main(String args[]){
– LinkedList<String> al=new LinkedList<String>();
– al.add("Ravi");
– al.add("Vijay");
– al.add("Ravi");
– al.add("Ajay");
–
–
169. Vector in Java
– Vector implements List Interface. Like ArrayList it also maintains insertion order
but it is rarely used in non-thread environment as it is synchronized and due to
which it gives poor performance in searching, adding, delete and update of its
elements.
170. ways to create vector class object
Syntax: -1)Vector vec = new Vector();
– It creates an empty Vector with the default initial capacity of 10. It means the
Vector will be re-sized when the 11th elements needs to be inserted into the
Vector. Note: By default vector doubles its size. i.e. In this case the Vector size
would remain 10 till 10 insertions and once we try to insert the 11th element It
would become 20 (double of default capacity 10).
171. – Syntax: - 2) : Vector object= new Vector(int initialCapacity)
– Exp
– Vector vec = new Vector(3);
– Syntax:
– Syntax: -3) Vector object= new vector(int initialcapacity, capacityIncrement)
172. – Example:
– Vector vec= new Vector(4, 6)
– Here we have provided two arguments. The initial capacity is 4 and
capacityIncrement is 6. It means upon insertion of 5th element the size would
be 10 (4+6) and on 11th insertion it would be 16(10+6).
– Syntax: -4) Vector object= new Vector(Collection c)
173. – public class VectorExample {
– public static void main(String args[]) {
– Vector<String> vec = new Vector<String>(2);
– vec.addElement("A");
– vec.addElement("B");
– vec.addElement("C");
– vec.addElement("D");
– }
174. Commonly used methods of Vector
Class:
– void addElement(Object element): It inserts the element at the end of the
Vector.
– int capacity(): This method returns the current capacity of the vector.
– int size(): It returns the current size of the vector.
– void setSize(int size): It changes the existing size with the specified size.
– boolean contains(Object element): This method checks whether the specified
element is present in the Vector. If the element is been found it returns true
else false.
175. – boolean containsAll(Collection c): It returns true if all the elements of collection
c are present in the Vector.
– Object elementAt(int index): It returns the element present at the specified
location in Vector.
– Object firstElement(): It is used for getting the first element of the vector.
– Object lastElement(): Returns the last element of the array.
– Object get(int index): Returns the element at the specified index.
– boolean isEmpty(): This method returns true if Vector doesn’t have any
element.
176. – boolean removeElement(Object element): Removes the specifed element from
vector.
– boolean removeAll(Collection c): It Removes all those elements from vector
which are present in the Collection c.
– void setElementAt(Object element, int index): It updates the element of
specifed index with the given element.
177. Example of Vector
– import java.util.*;
– public class VectorExample {
– public static void main(String args[]) {
– /* Vector of initial capacity(size) of 2 */
– Vector<String> vec = new Vector<String>(2);
/* Adding elements to a vector*/
– vec.addElement("Apple");
– vec.addElement("Orange");
– vec.addElement("Mango");
– vec.addElement("Fig");
178. – /*size and capacityIncrement after two insertions*/
– System.out.println("Size after addition: "+vec.size());
– System.out.println("Capacity after increment is: "+vec.capacity());
– /*Display Vector elements*/
– Enumeration en = vec.elements();
– System.out.println("nElements are:");
– while(en.hasMoreElements())
– System.out.print(en.nextElement() + " ");
– }
– }
179. Cursors in Java (Collection
Framework)
– Three types of cursors in Java (Collection Framework)
– Enumeration (I)
– Iterator (I)
– ListIterator (I)
– If we want to retrive Objects one by one from the collection then we should go
for cursors
180. Enumeration
– Introduce in 1.0 version
– we can use Enumeration to get objects one by one from the old collection
Objects.
– we can create enumeration objects by using elements() method of vector class.
public Enumeration elements();
Example Enumeration e = v.elements();
– Methods of Enumeration Interface
– public boolean hasmoreElements();
– public boolean nextElement();
182. Problem with Enumeration
– Applicable only for legacy classes
– Using enumeration we can only read objects.(No remove,add,or replacement)
183. Iterator
– It is Universal cursor i.e. it can be applied to any collection class.
– We can perform read as well as remove operation using Iterator.
– we can create Iterator objects by using iterator() method of Collection interface.
– public Iterator iterator();
Example Iterator itr= c.iterator();
– Methods of Iterator Interface
– public Boolean hasnext();
– public Object next();
– public void remove();
184. Methods of Iterator interface
No. Method Description
1 public boolean hasNext()
It returns true if iterator has
more elements.
2 public Object next()
It returns the element and
moves the cursor pointer to
the next element.
3 public void remove()
It removes the last elements
returned by the iterator. It is
rarely used.
186. Problems with Iterator
– Iterator and Enumeration is single direction cursor i.e. backward movement is
not possible
– We can perform read and remove operation using but Iterator, but replace and
addition of new objects is not possible
187. ListIterator
– It is bidirectional cursor.
– By using ListIterator we can perform read, remove, replace and additon of new
object as well.
– we can create ListIterator objects by using Listiterator() method of List interface.
188. – public ListIterator listIterator();
Example ListIterator ltr = l.listIterator();
– Methods of ListIterator Interface
– public boolean hasnext();
– public Object next();
– public int nextIndex();
–
189. – public boolean hasPrevious();
– public Object previous();
– public int previousIndex();
–
public void remove()
– public void set(Object newObj);
– public void add(Object newObj);
190. Example Program
– LinkedList l=new LinkedList();
– l.add("Sam");
– l.add("Tom");
– l.add("Ron");
– l.add("Jack");
– System.out.println(l); //[sam, Tom, Ron, Jack]
–
– ListIterator ltr=l.listIterator();
191. – while(ltr.hasnext())
– {String s=(String)ltr.next();
– if(s.equals("Tom"));
– ltr.remove(); // To remove element
– else if(s.equals("Jack"))
– ltr.add("Brad"); // To add element
– else if(s.equals("Ron"))
– itr.set("RVD"); // to replace element
– }
– System.out.println(l) //[Sam,RVD,Jack,Brad]
192. – Note : ListIterator is most powerful cursor but its limitation is, it is applicable
only for List implemented class object and it is not a universal cursor.
195. About Set(I)
– public interface Set<E> extends Collection<E>
– Set is an interface which extends Collection. It is an unordered collection of
objects in which duplicate values cannot be stored.
– Basically, Set is implemented by HashSet, LinkedSet or TreeSet (sorted
representation).
– Set has various methods to add, remove clear, size, etc to enhance the usage of
this interface
196. – This class implements the Set interface, backed by a hash table (actually a
HashMap instance). It makes no guarantees as to the iteration order of the set;
in particular, it does not guarantee that the order will remain constant over
time. This class permits the null element. This class is not synchronized.
However it can be synchronized explicitly like this: Set s =
Collections.synchronizedSet(new HashSet(...));
197. Difference between List and Set
– List can contain duplicate elements
– whereas Set contains unique elements only
198. Java HashSet class
– Java HashSet class is used to create a collection that uses a hash table for
storage. It inherits the AbstractSet class and implements Set interface.
– The important points about Java HashSet class are:
– HashSet stores the elements by using a mechanism called hashing.
– HashSet contains unique elements only.
199. HashSet class declaration
– public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable,
Serializable
200. Constructors of Java HashSet
class:
Constructor Description
HashSet() It is used to construct a default HashSet.
HashSet(Collection c)
It is used to initialize the hash set by using
the elements of the collection c.
HashSet(int capacity)
It is used to initialize the capacity of the hash
set to the given integer value capacity. The
capacity grows automatically as elements are
added to the HashSet.
202. Methods of Java HashSet class:
Method Description
void clear() It is used to remove all of the elements from this set.
boolean contains(Object o) It is used to return true if this set contains the specified element.
boolean add(Object o) It is used to adds the specified element to this set if it is not already present.
boolean isEmpty() It is used to return true if this set contains no elements.
boolean remove(Object o) It is used to remove the specified element from this set if it is present.
Object clone()
It is used to return a shallow copy of this HashSet instance: the elements
themselves are not cloned.
Iterator iterator() It is used to return an iterator over the elements in this set.
int size() It is used to return the number of elements in this set.
203. Java HashSet Example
– import java.util.*;
– class HashSetDemo{
– public static void main(String args[]){
– //Creating HashSet and adding elements
– HashSet<String> set=new HashSet<String>();
– set.add("Ravi");
– set.add("Vijay");
– set.add("Ravi");
– set.add("Ajay");
–
205. Java LinkedHashSet class
– Java LinkedHashSet class is a Hash table and Linked list implementation of the
set interface. It inherits HashSet class and implements Set interface.
– The important points about Java LinkedHashSet class are:
– Contains unique elements only like HashSet.
– Provides all optional set operations, and permits null elements.
– Maintains insertion order.
207. Constructors of LinkedHashSet
class
Constructor Description
HashSet() It is used to construct a default HashSet.
HashSet(Collection c)
It is used to initialize the hash set by using
the elements of the collection c.
LinkedHashSet(int capacity)
It is used initialize the capacity of the
linkedhashset to the given integer value
capacity.
LinkedHashSet(int capacity, float fillRatio)
It is used to initialize both the capacity and
the fill ratio (also called load capacity) of the
hash set from its argument.
208. Example of LinkedHashSet class
– import java.util.*;
– class LinkedHashSetDemo{
– public static void main(String args[]){
– LinkedHashSet<String> al=new LinkedHashSet<String>();
– al.add("Ravi");
– al.add("Vijay");
– al.add("Ravi");
– al.add("Ajay");
210. Java TreeSet class
– Java TreeSet class implements the Set interface that uses a tree for storage. It
inherits AbstractSet class and implements NavigableSet interface. The objects of
TreeSet class are stored in ascending order.
– The important points about Java TreeSet class are:
– Contains unique elements only like HashSet.
– Access and retrieval times are quiet fast.
– Maintains ascending order.
211. TreeSet class declaration
– public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cl
oneable, Serializable
212. Constructors of Java TreeSet class
Constructor Description
TreeSet()
It is used to construct an empty tree set that
will be sorted in an ascending order
according to the natural order of the tree
set.
TreeSet(Collection c)
It is used to build a new tree set that
contains the elements of the collection c.
TreeSet(Comparator comp)
It is used to construct an empty tree set that
will be sorted according to given comparator.
TreeSet(SortedSet ss)
It is used to build a TreeSet that contains the
elements of the given SortedSet.
213. Methods of Java TreeSet class
Method Description
boolean addAll(Collection c) It is used to add all of the elements in the specified collection to this set.
boolean contains(Object o) It is used to return true if this set contains the specified element.
boolean isEmpty() It is used to return true if this set contains no elements.
boolean remove(Object o) It is used to remove the specified element from this set if it is present.
void add(Object o) It is used to add the specified element to this set if it is not already present.
void clear() It is used to remove all of the elements from this set.
Object clone() It is used to return a shallow copy of this TreeSet instance.
Object first() It is used to return the first (lowest) element currently in this sorted set.
Object last() It is used to return the last (highest) element currently in this sorted set.
int size() It is used to return the number of elements in this set.
214. Java TreeSet Example
– import java.util.*;
– class TreeSetDemo{
– public static void main(String args[]){
– //Creating and adding elements
– TreeSet<String> al=new TreeSet<String>();
– al.add("Ravi");
– al.add("Vijay");
– al.add("Ravi");
– al.add("Ajay");
217. – A map contains values on the basis of key i.e. key and value pair. Each key and
value pair is known as an entry. Map contains only unique keys.
– Map is useful if you have to search, update or delete elements on the basis of
key.
218. methods of Map interface
Method Description
Object put(Object key, Object value) It is used to insert an entry in this map.
void putAll(Map map) It is used to insert the specified map in this map.
Object remove(Object key) It is used to delete an entry for the specified key.
Object get(Object key) It is used to return the value for the specified key.
boolean containsKey(Object key) It is used to search the specified key from this map.
Set keySet() It is used to return the Set view containing all the keys.
Set entrySet()
It is used to return the Set view containing all the keys and
values.
220. Method of Map.Entry interface
– 1) boolean equals(Object o): Compares the specified object with this entry for
equality.
2) Key getKey(): Returns the key corresponding to this entry.
3) Value getValue(): Returns the value corresponding to this entry.
4) int hashCode(): Returns the hash code value for this map entry.
5) Value setValue(V value): Replaces the value corresponding to this entry with
the specified value (optional operation).
221. Example and Usage of
Map.Entry
– In this example, we have a Map collection class TreeMap and we are iterating
and displaying its key & value pairs using Map.Entry interfaces. Here we have
used getKey() and getValue() methods of Map.Entry interface in order to get the
key & value pairs.
222. Old Style -Non-Generic
– import java.util.*;
– class TreeMapExample {
– public static void main(String args[]) {
– // Creating TreeMap object
– TreeMap<String, Integer> tm = new TreeMap<String, Integer>();
– // Adding elements to the Map
– tm.put("Chaitanya", 27);
– tm.put("Raghu", 35);
– tm.put("Rajeev", 37);
– tm.put("Syed", 28);
223. – // Getting a set of the entries
– Set set = tm.entrySet();
– // Get an iterator
– Iterator it = set.iterator();
– // Display elements
– while(it.hasNext()) {
– Map.Entry me = (Map.Entry)it.next();
– System.out.print("Key: "+me.getKey() + " & Value: ");
– System.out.println(me.getValue());
– }
– }
– }
224. – //Non-generic
– import java.util.*;
– public class MapExample1 {
– public static void main(String[] args) {
– Map map=new HashMap();
– //Adding elements to map
– map.put(1,"Amit");
– map.put(5,"Rahul");
– map.put(2,"Jai");
– map.put(6,"Amit");
225. – //Traversing Map
– Set set=map.entrySet();//Converting to Set so that we can traverse
– Iterator itr=set.iterator();
– while(itr.hasNext()){
– //Converting to Map.Entry so that we can get key and value separately
– Map.Entry entry=(Map.Entry)itr.next();
– System.out.println(entry.getKey()+" "+entry.getValue());
– }
– }
– }
226. Java HashMap class
– Java HashMap class implements the map interface by using a hashtable. It
inherits AbstractMap class and implements Map interface.
– The important points about Java HashMap class are:
– A HashMap contains values based on the key.
– It contains only unique elements.
– It may have one null key and multiple null values.
– It maintains no order.
227. HashMap class declaration
– HashMap is a Map based collection class that is used for storing Key & value
pairs, it is denoted as HashMap<Key, Value> or HashMap<K, V>. This class
makes no guarantees as to the order of the map. It is similar to the Hashtable
class except that it is unsynchronized and permits nulls(null values and null key).
– It is not an ordered collection which means it does not return the keys and
values in the same order in which they have been inserted into the HashMap. It
does not sort the stored keys and Values. You must need to import
java.util.HashMap or its super class in order to use the HashMap class and
methods.
228. HashMap
– public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,
Cloneable, Serializable
– HashMap class Parameters
– Let's see the Parameters for java.util.HashMap class.
– K: It is the type of keys maintained by this map.
– V: It is the type of mapped values.
229. Constructors of Java HashMap
class
Constructor Description
HashMap() It is used to construct a default HashMap.
HashMap(Map m)
It is used to initializes the hash map by using
the elements of the given Map object m.
HashMap(int capacity)
It is used to initializes the capacity of the
hash map to the given integer value,
capacity.
HashMap(int capacity, float fillRatio)
It is used to initialize both the capacity and
fill ratio of the hash map by using its
arguments.
231. LinkedHashMap in Java
– LinkedHashMap is a Hash table and linked list implementation of the Map
interface, with predictable iteration order. This implementation differs from
HashMap in that it maintains a doubly-linked list running through all of its
entries. This linked list defines the iteration ordering, which is normally the
order in which keys were inserted into the map (insertion-order).
232. – HashMap doesn’t maintain any order.
– •TreeMap sort the entries in ascending order of keys.
– •LinkedHashMap maintains the insertion order.
234. Constructors of Java
LinkedHashMap class
Constructor Description
LinkedHashMap()
It is used to construct a default
LinkedHashMap.
LinkedHashMap(int capacity)
It is used to initialize a LinkedHashMap
with the given capacity.
LinkedHashMap(int capacity, float fillRatio)
It is used to initialize both the capacity and
the fillRatio.
LinkedHashMap(Map m)
It is used to initialize the LinkedHashMap
with the elements from the given Map
class m.
239. – // Generating a Set of entries
– Set set = lhmap.entrySet();
// Displaying elements of LinkedHashMap
– Iterator iterator = set.iterator();
– while(iterator.hasNext()) {
– Map.Entry me = (Map.Entry)iterator.next();
– System.out.print("Key is: "+ me.getKey() +
– "& Value is: "+me.getValue()+"n");
– } }}
240. TreeMap
– Java TreeMap class implements the Map interface by using a tree. It provides an
efficient means of storing key/value pairs in sorted order.
– The important points about Java TreeMap class are:
– A TreeMap contains values based on the key. It implements the NavigableMap
interface and extends AbstractMap class.
– It contains only unique elements.
– It cannot have null key but can have multiple null values.
– It is same as HashMap instead maintains ascending order.
241. TreeMap class declaration
– public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMa
p<K,V>, Cloneable, Serializable
242. Constructors of Java TreeMap
class
Constructor Description
TreeMap()
It is used to construct an empty tree map that will be
sorted using the natural order of its key.
TreeMap(Comparator comp)
It is used to construct an empty tree-based map that
will be sorted using the comparator comp.
TreeMap(Map m)
It is used to initialize a tree map with the entries from
m, which will be sorted using the natural order of the
keys.
TreeMap(SortedMap sm)
It is used to initialize a tree map with the entries from
the SortedMap sm, which will be sorted in the same
order as sm.
243. Methods of Java TreeMap class
Method Description
boolean containsKey(Object key) It is used to return true if this map contains a mapping for the specified key.
boolean containsValue(Object value) It is used to return true if this map maps one or more keys to the specified value.
Object firstKey() It is used to return the first (lowest) key currently in this sorted map.
Object get(Object key) It is used to return the value to which this map maps the specified key.
Object lastKey() It is used to return the last (highest) key currently in this sorted map.
Object remove(Object key) It is used to remove the mapping for this key from this TreeMap if present.
void putAll(Map map) It is used to copy all of the mappings from the specified map to this map.
Set entrySet() It is used to return a set view of the mappings contained in this map.
int size() It is used to return the number of key-value mappings in this map.
Collection values() It is used to return a collection view of the values contained in this map.
245. Java Hashtable class
– This class implements a hash table, which maps keys to values. Any non-null object can be
used as a key or as a value. Hashtable is similar to HashMap except it is synchronized
– Java Hashtable class implements a hashtable, which maps keys to values. It inherits Dictionary
class and implements the Map interface.
– The important points about Java Hashtable class are:
– A Hashtable is an array of list. Each list is known as a bucket. The position of bucket is
identified by calling the hashcode() method. A Hashtable contains values based on the key.
– It contains only unique elements.
– It may have not have any null key or value.
– It is synchronized.
246. Hashtable class declaration
– public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Clo
neable, Serializable
247. Constructors of Java Hashtable
class
Constructor Description
Hashtable()
It is the default constructor of hash table it
instantiates the Hashtable class.
Hashtable(int size)
It is used to accept an integer parameter and
creates a hash table that has an initial size
specified by integer value size.
Hashtable(int size, float fillRatio)
It is used to create a hash table that has an
initial size specified by size and a fill ratio
specified by fillRatio.
248. Methods of Java Hashtable
class
Method Description
void clear() It is used to reset the hash table.
boolean contains(Object value) This method return true if some value equal to the value exist within the hash table, else return false.
boolean containsValue(Object value) This method return true if some value equal to the value exists within the hash table, else return false.
boolean containsKey(Object key) This method return true if some key equal to the key exists within the hash table, else return false.
boolean isEmpty() This method return true if the hash table is empty; returns false if it contains at least one key.
void rehash() It is used to increase the size of the hash table and rehashes all of its keys.
Object get(Object key) This method return the object that contains the value associated with the key.
Object remove(Object key) It is used to remove the key and its value. This method return the value associated with the key.
int size() This method return the number of entries in the hash table.
249. Java Hashtable Example
– import java.util.*;
– class HashtableDemo{
– public static void main(String args[]){
– Hashtable<Integer,String> hm=new Hashtable<Integer,String>();
– hm.put(100,"Amit");
– hm.put(102,"Ravi");
– hm.put(101,"Vijay");
– hm.put(103,"Rahul");
–
251. Difference between HashMap and
Hashtable
– HashMap is non-synchronized. This means if it’s used in multithread
environment then more than one thread can access and process the HashMap
simultaneously.
– Hashtable is synchronized. It ensures that no more than one thread can access
the Hashtable at a given moment of time. The thread which works on Hashtable
acquires a lock on it to make the other threads wait till its work gets completed.
252. – HashMap allows one null key and any number of null values.
– Hashtable doesn’t allow null keys and null values.
253. HashMap Hashtable
1) HashMap is non synchronized. It is not-thread safe and can't be shared between
many threads without proper synchronization code.
Hashtable is synchronized. It is thread-safe and can be shared with many threads.
2) HashMap allows one null key and multiple null values. Hashtable doesn't allow any null key or value.
3) HashMap is a new class introduced in JDK 1.2. Hashtable is a legacy class.
4) HashMap is fast. Hashtable is slow.
5) We can make the HashMap as synchronized by calling this code
Map m = Collections.synchronizedMap(hashMap);
Hashtable is internally synchronized and can't be unsynchronized.
6) HashMap is traversed by Iterator. Hashtable is traversed by Enumerator and Iterator.
7) Iterator in HashMap is fail-fast. Enumerator in Hashtable is not fail-fast.
8) HashMap inherits AbstractMap class. Hashtable inherits Dictionary class.