0% found this document useful (0 votes)
6 views23 pages

Advance Java: Developed By:-Prof Abhay More

The document provides an overview of the Java Collections Framework, detailing its architecture for storing and manipulating groups of objects through various interfaces and classes such as List, Set, Queue, and Deque. It explains key methods of the Collection interface, the Iterable interface, and specific implementations like ArrayList, LinkedList, Vector, Stack, and HashSet, along with examples of their usage. Additionally, it covers the characteristics of these collections, including their order, synchronization, and capabilities regarding duplicate elements.

Uploaded by

mansi.d.matekar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views23 pages

Advance Java: Developed By:-Prof Abhay More

The document provides an overview of the Java Collections Framework, detailing its architecture for storing and manipulating groups of objects through various interfaces and classes such as List, Set, Queue, and Deque. It explains key methods of the Collection interface, the Iterable interface, and specific implementations like ArrayList, LinkedList, Vector, Stack, and HashSet, along with examples of their usage. Additionally, it covers the characteristics of these collections, including their order, synchronization, and capabilities regarding duplicate elements.

Uploaded by

mansi.d.matekar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

C-4, Wagle Industrial Estate,

Near Mulund Check Naka,


Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

Advance Java
Lecture 2

1|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

➢ Collections in Java (A Collection represents a single unit of


objects, i.e., a group.)

The Collection in Java is a framework that provides architecture to store and


manipulate the group of objects. Java Collections can achieve all the operations
that you perform on a data such as searching, sorting, insertion, manipulation, and
deletion.Java Collection means a single unit of objects. Java Collection framework
provides many interfaces (Set, List, Queue, Deque) and classes (ArrayList,
Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet).

• What is a framework in Java


o It provides readymade architecture.
o It represents a set of classes and interfaces.
o It is optional.

• What is Collection framework


The Collection framework represents a unified architecture for storing and
manipulating a group of objects. It has:
1. Interfaces and its implementations, i.e., classes
2. Algorithm

2|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

• Methods of Collection interface


There are many methods declared in the Collection interface. They are as follows:

No. Method Description


1 public boolean add(E e) It is used to insert an element in
this collection.
2 public boolean It is used to insert the specified
addAll(Collection<? extends E> collection elements in the
c) invoking collection.
3 public boolean remove(Object It is used to delete an element
element) from the collection.
4 public boolean It is used to delete all the elements
removeAll(Collection<?> c) of the specified collection from
the invoking collection.
5 default boolean It is used to delete all the elements
removeIf(Predicate<? super E> of the collection that satisfy the
filter) specified predicate.
6 public boolean It is used to delete all the elements
retainAll(Collection<?> c) of invoking collection except the
specified collection.
7 public int size() It returns the total number of
elements in the collection.
8 public void clear() It removes the total number of
elements from the collection.
9 public boolean contains(Object It is used to search an element.
element)
10 public boolean It is used to search the specified
containsAll(Collection<?> c) collection in the collection.
11 public Iterator iterator() It returns an iterator.

3|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

12 public Object[] toArray() It converts collection into array.


13 public <T> T[] toArray(T[] a) It converts collection into array.
Here, the runtime type of the
returned array is that of the
specified array.
14 public boolean isEmpty() It checks if collection is empty.
15 default Stream<E> It returns a possibly parallel
parallelStream() Stream with the collection as its
source.
16 default Stream<E> stream() It returns a sequential Stream with
the collection as its source.
17 default Spliterator<E> It generates a Spliterator over the
spliterator() specified elements in the
collection.
18 public boolean equals(Object It matches two collections.
element)
19 public int hashCode() It returns the hash code number of
the collection.

4|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

• Iterable Interface
The Iterable interface is the root interface for all the collection classes. The
Collection interface extends the Iterable interface and therefore all the subclasses
of Collection interface also implement the Iterable interface.

It contains only one abstract method. i.e.,

1. Iterator<T> iterator()

It returns the iterator over the elements of type T.

Iterator interface
Iterator interface provides the facility of iterating the elements in a forward
direction only.

• Methods of Iterator interface

There are only three methods in the Iterator interface. They are:

No. Method Description

1 public boolean It returns true if the iterator has more elements


hasNext() otherwise it returns false.

2 public Object It returns the element and moves the cursor


next() pointer to the next element.

3 public void It removes the last elements returned by the


remove() iterator. It is less used.

5|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

➢ List Interface
List interface is the child interface of Collection interface. It inhibits a list type data
structure in which we can store the ordered collection of objects. It can have
duplicate values.

List interface is implemented by the classes ArrayList, LinkedList, Vector, and


Stack.

To instantiate the List interface, we must use :

1. List <data-type> list1= new ArrayList();


2. List <data-type> list2 = new LinkedList();
3. List <data-type> list3 = new Vector();
4. List <data-type> list4 = new Stack();

There are various methods in List interface that can be used to insert, delete, and
access the elements from the list.

The classes that implement the List interface are given below.

1) ArrayList

The ArrayList class implements the List interface. It uses a dynamic array to store
the duplicate element of different data types. The ArrayList class maintains the
insertion order and is non-synchronized. The elements stored in the ArrayList class
can be randomly accessed.

Consider the following example.

import java.util.*;
class TestJavaCollection1{
public static void main(String args[]){
ArrayList<String> list=new ArrayList<String>();//Creating arraylist
6|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

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());
}
}
}

Output:

Ravi
Vijay
Ravi
Ajay

7|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

2) LinkedList
LinkedList implements the Collection interface. It uses a doubly linked list
internally to store the elements. It can store the duplicate elements. It maintains the
insertion order and is not synchronized. In LinkedList, the manipulation is fast
because no shifting is required.

Consider the following example.

import java.util.*;
public class TestJavaCollection2{
public static void main(String args[]){
LinkedList<String> al=new LinkedList<String>();
al.add("Ravi");
al.add("Vijay");
al.add("Ravi");
al.add("Ajay");
Iterator<String> itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}

Output:

Ravi
Vijay
Ravi
Ajay

8|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

3) Vector
Vector uses a dynamic array to store the data elements. It is similar to ArrayList.
However, It is synchronized and contains many methods that are not the part of
Collection framework.

Consider the following example.

import java.util.*;
public class TestJavaCollection3{
public static void main(String args[]){
Vector<String> v=new Vector<String>();
v.add("Ayush");
v.add("Amit");
v.add("Ashish");
v.add("Garima");
Iterator<String> itr=v.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}

Output:

Ayush
Amit
Ashish
Garima

9|Page
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

4) Stack
The stack is the subclass of Vector. It implements the last-in-first-out data
structure, i.e., Stack. The stack contains all of the methods of Vector class and also
provides its methods like boolean push(), boolean peek(), boolean push(object o),
which defines its properties.

Consider the following example.

import java.util.*;
public class TestJavaCollection4{
public static void main(String args[]){
Stack<String> stack = new Stack<String>();
stack.push("Ayush");
stack.push("Garvit");
stack.push("Amit");
stack.push("Ashish");
stack.push("Garima");
stack.pop();
Iterator<String> itr=stack.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}

Output:

Ayush
Garvit
Amit
Ashish

10 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

• Queue Interface
Queue interface maintains the first-in-first-out order. It can be defined as an
ordered list that is used to hold the elements which are about to be processed.
There are various classes like PriorityQueue, Deque, and ArrayDeque which
implements the Queue interface.

Queue interface can be instantiated as:

1. Queue<String> q1 = new PriorityQueue();


2. Queue<String> q2 = new ArrayDeque();

There are various classes that implement the Queue interface, some of them are
given below.

1. PriorityQueue
The PriorityQueue class implements the Queue interface. It holds the elements or
objects which are to be processed by their priorities. PriorityQueue doesn't allow
null values to be stored in the queue.

Consider the following example.

import java.util.*;
public class TestJavaCollection5{
public static void main(String args[]){
PriorityQueue<String> queue=new PriorityQueue<String>();
queue.add("Amit Sharma");
queue.add("Vijay Raj");
queue.add("JaiShankar");
queue.add("Raj");
System.out.println("head:"+queue.element());
System.out.println("head:"+queue.peek());
System.out.println("iterating the queue elements:");
Iterator itr=queue.iterator();

11 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

while(itr.hasNext()){
System.out.println(itr.next());
}
queue.remove();
queue.poll();
System.out.println("after removing two elements:");
Iterator<String> itr2=queue.iterator();
while(itr2.hasNext()){
System.out.println(itr2.next());
}
}
}

Output:

head:Amit Sharma
head:Amit Sharma
iterating the queue elements:
Amit Sharma
Raj
JaiShankar
Vijay Raj
after removing two elements:
Raj
Vijay Raj

12 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

➢ Deque Interface
Deque interface extends the Queue interface. In Deque, we can remove and add the
elements from both the side. Deque stands for a double-ended queue which enables
us to perform the operations at both the ends.

Deque can be instantiated as:

1. Deque d = new ArrayDeque();


ArrayDeque

ArrayDeque class implements the Deque interface. It facilitates us to use the


Deque. Unlike queue, we can add or delete the elements from both the ends.

ArrayDeque is faster than ArrayList and Stack and has no capacity restrictions.

Consider the following example.

import java.util.*;
public class TestJavaCollection6{
public static void main(String[] args) {
//Creating Deque and adding elements
Deque<String> deque = new ArrayDeque<String>();
deque.add("Gautam");
deque.add("Karan");
deque.add("Ajay");
//Traversing elements
for (String str : deque) {
System.out.println(str);
}
}
}

13 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

Output:

Gautam
Karan
Ajay

➢ Set Interface
Set Interface in Java is present in java.util package. It extends the Collection
interface. It represents the unordered set of elements which doesn't allow us to
store the duplicate items. We can store at most one null value in Set. Set is
implemented by HashSet, LinkedHashSet, and TreeSet.

Set can be instantiated as:

1. Set<data-type> s1 = new HashSet<data-type>();


2. Set<data-type> s2 = new LinkedHashSet<data-type>();
3. Set<data-type> s3 = new TreeSet<data-type>();
➢ HashSet

HashSet class implements Set Interface. It represents the collection that uses a hash
table for storage. Hashing is used to store the elements in the HashSet. It contains
unique items.

Consider the following example.

import java.util.*;
public class TestJavaCollection7{
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");
//Traversing elements
14 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

Iterator<String> itr=set.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}

Output:

Vijay
Ravi
Ajay

➢ LinkedHashSet
LinkedHashSet class represents the LinkedList implementation of Set Interface. It
extends the HashSet class and implements Set interface. Like HashSet, It also
contains unique elements. It maintains the insertion order and permits null
elements.

Consider the following example.

import java.util.*;
public class TestJavaCollection8{
public static void main(String args[]){
LinkedHashSet<String> set=new LinkedHashSet<String>();
set.add("Ravi");
set.add("Vijay");
set.add("Ravi");
set.add("Ajay");
Iterator<String> itr=set.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
15 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

}
}
}

Output:

Ravi
Vijay
Ajay

• SortedSet Interface
SortedSet is the alternate of Set interface that provides a total ordering on its
elements. The elements of the SortedSet are arranged in the increasing (ascending)
order. The SortedSet provides the additional methods that inhibit the natural
ordering of the elements.

The SortedSet can be instantiated as:

➢ SortedSet<data-type> set = new TreeSet();

• TreeSet
Java TreeSet class implements the Set interface that uses a tree for storage. Like
HashSet, TreeSet also contains unique elements. However, the access and retrieval
time of TreeSet is quite fast. The elements in TreeSet stored in ascending order.

Consider the following example:

import java.util.*;
public class TestJavaCollection9{
public static void main(String args[]){
//Creating and adding elements

16 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

TreeSet<String> set=new TreeSet<String>();


set.add("Ravi");
set.add("Ravi");
set.add("Ajay");
//traversing elements
Iterator<String> itr=set.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}

Output:

Ajay
Ravi

➢ Generic Map In Java


Java Arrays store items in an ordered collection and the values can be accessed
using the index(aIf you specify only a single expression as the body of a lambda
function (whether in a statement block or by itself), the lambda will
automatically return the evaluation of that expression.
If you have multiple lines in your statement block, or if you just want to (it's a
free country), you can explicitly use a return statement from within a statement
block:
// just the expression
(s1,s2) -> s1.length() - s2.length()

// statement block
(s1,s2) -> { s1.length() - s2.length(); }

// using return
(s1,s2) -> {

17 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

s1.length() - s2.length();
return; // because forEach expects void return
}
n integer). Whereas HashMap stores as a Key/ Value pair. Using HashMap, we
can store the items or values and these values can be accessed by indexes/ keys of
any type be it Integer, String, Double, Character, or any user-defined datatype.

The Mappings in a HashMap are from Key → Value

HashMap is a part of Java since Java 1.2. It implements java.util.Map interface.


What is Generic Map and how is it different from the term HashMap?
The term generic simply is the idea of allowing the type (Integer, Double, String,
etc. or any user-defined type) to be the parameter to methods, class, or interface.
For eg, all the inbuilt collections in java like ArrayList, HashSet, HashMap, etc.
use generics.

Generic Map in simple language can be generalized as:

Map< K, V > map = new HashMap< K, V >();

Where K and V are used to specify the generic type parameter passed in the
declaration of a HashMap. We can add any type be it Integer, String, Float,
Character, or any user-defined type in place of K and V in the above syntax to
specify that we can initialize the HashMap of our wish.

Example:
Suppose if the key is of type String and the corresponding value is of
type Integer, then we can initialize it as,
Map< String , Integer > map = new HashMap< String ,Integer >();
The map can now only accept String instances as key and Integer instances as
values.

18 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

Accessing A Generic Map

This can be done by using put() and get() function.


1. put(): Used to add a new key/value pair to the Hashmap.
2. get(): Used to get the value corresponding to a particular key.
Example :
Map< Integer, String > map = new HashMap<>();

// adding the key 123 and value


// corresponding to it as abc in the map
map.put( 123, "abc");
map.put(65, "a");
map.put(2554 , "GFG");
map.get(65);

Output:

Iterating A Generic Map

Map has two collections for iteration. One is keySet() and the other is values().
Example: Using iterator() method
Map<Integer, Integer> map = new HashMap<>;

//adding key, value pairs to the Map


// iterate keys.
Iterator<Integer> key = map.keySet().iterator();

19 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

while(key.hasNext()){
Integer aKey = key.next();
String aValue = map.get(aKey);
}

Iterator<Integer> value = map.values().iterator();

while(valueIterator.hasNext()){
String aString = value.next();
}

Example: Using new for-loop or for-each loop or generic for loop


Map<Integer, String> map = new HashMap<Integer, String>;

//adding key, value pairs to the Map


//using for-each loop
for(Integer key : map.keySet()) {
String value = map.get(key);
System.out.println("" + key + ":" + value);
}
for(String value : map.values()) {
System.out.println(value);
}

20 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

Java Program to illustrate the usage of a map

// Java program to demonstrate


// Generic Map

import java.io.*;
import java.util.*;

class GenericMap {

public static void main(String[] args)


{
// create array of strings
String arr[]
= { "gfg", "code", "quiz", "program",
"code", "website", "quiz", "gfg",
"java", "gfg", "program" };

// to count the frequency of a string and store it


// in the map
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
int count = map.get(arr[i]);
map.put(arr[i], count + 1);
}
else {
map.put(arr[i], 1);
}
}

// to get and print the count of the mentioned


// string
System.out.println(map.get("gfg"));
System.out.println(map.get("code"));
}

21 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

}
Output
3
2

Assignments on List Interface

1. Write a Java program to create List containing list of items of type


String and use for-
--each loop to print the items of the list.
2. Write a Java program to create List containing list of items
and use ListIterator interface to print items present in the list.
Also print the list in reverse/ backword direction.

Assignments on Set Interface

1. Write a Java program to create a Set containing list of items of


type String and print the items in the list using Iterator interface.
Also print the list in reverse/ backword direction.
2. Write a Java program using Set interface containing list of
items and perform the following operations:
a. Add items in the set.
b. Insert items of one set in to other set.
c. Remove items from the set
d. Search the specified item in the set

22 | P a g e
C-4, Wagle Industrial Estate,
Near Mulund Check Naka,
Thane West, opp. Aplab,
Mumbai, Maharashtra
400604 Developed by:- Prof Abhay More

Assignments on Map Interface

Write a Java program using Map interface containing list of items


having keys and associated values and perform the following
operations:
a. Add items in the map.
b. Remove items from the map
c. Search specific key from the map
d. Get value of the specified key
e. Insert map elements of one map in to other map.
f. Print all keys and values of the map.

23 | P a g e

You might also like