SlideShare a Scribd company logo
1 of 63
www.SunilOS.com 1
www.sunilos.com
www.raystec.com
Collections Framework
Agenda
Collection List/Set and Map
Iterator and Fail Fast
Why to use
o ArrayList vs LinkedList
o ArrayList vs Vector
o HashMap vs HashTable
o Iterator vs Enumeration
Synchronize Collection
Equals() and HashCode()
www.SunilOS.com 2
Generics
Wrapper Classes
Autoboxing/Unboxing
Concurrent collection
Stream API
www.SunilOS.com 3
Collections Framework
Collection
Set
SortedSet
List Queue
Map
SortedMap
A Map is not a true Collection.
www.SunilOS.com 4
Collections Framework
A collections framework is a unified architecture for
representing and manipulating collections.
It consists of
o Interfaces – Collection, Set, List, Queue
o Concrete Classes – ArrayList, Hashmap, HashSet, etc.
o Algorithm - searching and sorting
www.SunilOS.com 5
Example
SET [1,2,4,5,6,7,8]
LIST [1,2,4,5,7,3,3,4,5]
QUEUE [1,2,4,5,7,3,3,4,5]
MAP [ {1,”ONE”}, {2,”TWO”}, {3,”THREE”} ,
{4,”THREE”}]
www.SunilOS.com 6
Collection Interfaces
Collection-A collection represents a group of objects known as its
elements.
Set - cannot contain duplicate elements.
List- ordered collection, can contain duplicate elements.
Queue - holds multiple elements prior to processing. a Queue
provides additional insertion, extraction, and inspection
operations.
Map - an object that maps keys to values. A Map cannot contain
duplicate keys.
SortedSet - a Set that maintains its elements in ascending order.
SortedMap - a Map that maintains its mappings in ascending key
order.
www.SunilOS.com 7
List by regular array
public static void main(String[] args) {
o String[] names = new String[5];
o for(int i=0;i<names.length; i++){
•names[i]= " No # " + i;
o }
o System.out.println("Names =" + names.length);
}
Disadvantages:
o All elements should be of same type, here it is String.
o Primitive data type arrays can be defined.
o Array size is Fixed. Defined at the time of creation.
www.SunilOS.com 8
List by Collection framework
 public static void main(String[] args) {
o ArrayList names = new ArrayList();
o for(int i=0;i<10; i++){
• names.add(" No # " + i);
o }
o System.out.println("Names =" + names.size());
o Object o = names.get(0);
o String name = (String) o;
o //String name = (String) names.get(0);
o System.out.println(“ First Name is " + name);
 }
Advantages:
o Unlimited size, no need to define array size at the time of creation.
o Add object of any class, in other words any object in Java.
o Add only objects but NOT primitive data types.
www.SunilOS.com 9
Interface Collection
add(o) Add a new element
addAll(c) Add a collection
clear() Remove all elements
contains(o) Membership checking
containsAll(c) Inclusion checking
isEmpty() Whether it is empty
iterator() Return an iterator
remove(o) Remove an element
removeAll(c) Remove a collection
retainAll(c) Keep the elements
size() The number of elements
www.SunilOS.com 10
Interface List
add(i,o) Inserts o at position i.
get(i) Returns the i-th element.
remove(i) Removes the i-th element.
set(i,o) Replaces the i-th element with o.
indexOf(o) Searches object from beginning.
lastIndexOf(o) Searches object from end.
sublist(start index, end index) Returns
sublist.
List allows multiple NULL values to be inserted.
www.SunilOS.com 11
Interface Set
Contains UNIQUE set of values.
Contains at most one NULL value.
Does not declare additional methods.
www.SunilOS.com 12
Interface Queue
 element(): Retrieves, but does not remove the head of this queue.
 offer(E o): Inserts the specified element into this queue, if
possible. Returns true if inserted.
 peek(): Retrieves, but does not remove the head of this queue,
returning null if this queue is empty.
 poll(): Retrieves and removes the head of this queue, or null if this
queue is empty.
 remove(): Retrieves and removes the head of this queue.
Throws exception Returns special value
Insert add(e) offer(e)
Remove remove() poll()
Examine element() peek()
www.SunilOS.com 13
Interface Map
 clear() Removes all mappings.
 containsKey(k) Checks membership of Key.
 containsValue(v) Checks membership of Value.
 entrySet() Set of key-value pairs.
 get(k) Returns the value associated with Key.
 isEmpty() Whether it is empty.
 keySet() Returns Set of keys.
 put(k,v) Inserts Key and Value pair.
 remove(k) Removes the mapping of Key.
 size() Returns size of Map.
 values() Returns the List of values.
www.SunilOS.com 14
Concrete Collections
Interface Set List Map
Impleme-
ntation
HashSet HashMap
ArrayList
TreeSet
(SortedSe
t)
TreeMap
(SortedMap)
LinkedList
Historical Vector Stack Hashtable
Propert
ies
www.SunilOS.com 15
Concrete Collections
HashSet Set hash table
TreeSet SortedSet balanced binary tree
ArrayList List resizable-array
LinkedList List linked list
Vector List resizable-array
HashMap Map hash table
TreeMap SortedMap balanced binary tree
Hashtable Map hash table
www.SunilOS.com 16
ArrayList implements List
 public static void main(String[] args) {
o ArrayList v = new ArrayList();
o v.add(“One");
o v.add(“Two");
o v.add(“Three");
o Integer i = new Integer(4);
o v.add(i);
o Integer value = (Integer) v.get(3);
o System.out.println(“Index#3 value = " +
value);
 }
www.SunilOS.com 17
Vector implements List
public static void main(String[] args) {
o Vector v = new Vector();
o v.add(“One");
o v.add(“Two");
o v.add(“Three");
o Integer i = new Integer(4);
o v.add(i);
o Integer value = (Integer) v.get(3);
o System.out.println(“Index#3 value = " +
value);
}
www.SunilOS.com 18
ArrayList – read all elements
public static void main(String[] args) {
o ArrayList v = new ArrayList();
o v.add(“One");
o …..
o int size = v.size();
o for (int j = 0; j < size; j++) {
o System.out.println(j + " : " +
v.get(j));
o }
An object is converted into string by o.toString() method.
toString() method is defined in Object class.
www.SunilOS.com 19
toString() : converts object into string
System.out.println(j + " : " + v.get(j));
OR
Object o = v.get(j);
System.out.println(j + " : " + o);
OR
Object o = v.get(j);
System.out.println(j + ":" + o.toString());
www.SunilOS.com 20
ArrayList – read all elements
public static void main(String[] args) {
o ArrayList v = new ArrayList();
o v.add("Jay");
o …..
o Iterator it = v.iterator(); //Gets an iterator
o while(it.hasNext())
•Object o = it.next(); //Gets next element
•System.out.println(o);
•//System.out.println(it.next());
o }
}
www.SunilOS.com 21
Interface Iterator
Methods
oboolean hasNext();
oObject next();
ovoid remove();
The iterator() method is defined in the
Collection interface
www.SunilOS.com 22
Iterator
Set s = new TreeSet();
s.add(“123”); ..
Iterator it = s.iterator();
Vector v = new Vector();
v.add(“123”); ..
Iterator it = v.iterator();
www.SunilOS.com 23
Map – Hashtable and HashMap
 public static void main(String[] args) {
o HashMap m = new HashMap();
o m.put("RN1001", 890);
o m.put("RN1002",900);
o m.put("RN1003",780);
o Integer i = (Integer)m.get("RN1002");
o Set keys = m.keySet();
o Collection vals = m.values()
ArrayList vs Linked List
www.SunilOS.com 24
HashMap vs Hashtable
HashMap
Asynchronous.
Not Thread Safe.
Permits NULL values as Key
and Value.
High performance.
Used in single-user
application.
HashTable
Synchronous
Thread Safe
Does not permit NULL
Slow performance
Used in multi-user application.
www.SunilOS.com 25
ArrayList vs Vector
ArrayList
Asynchronous.
Not Thread Safe.
High performance.
Grows by half of its size.
Used in single-user
application.
Vector
Synchronous
Thread Safe
Slow performance
Double the size when grow
Used in multi-user application.
www.SunilOS.com 26
Grows by half of its size Grows by double of its size
+ +
www.SunilOS.com 27
java.util.Enumeration
Vector v = new Vector();
Enumeration e = v.elements()
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
}
Iterator and Enumeration both are same but Iterator has one
additional method ‘remove()’.
Enumeration can be used with only historical classes Vector,
Hashtable, etc.
Iterator vs Enumeration
Iterator
It is fail-fast.
Can remove an object.
Enumeration
Not fail-fast
Can’t remove an object
Available with historical
classes Vector, HashTable,
Stack, etc.
www.SunilOS.com 28
Fail-fast
If the collection is structurally modified at any time
after the Iterator is created, in any way except through
the Iterator's own remove() method, then Iterator will
throw the following exception:
oConcurrentModificationException.
www.SunilOS.com 29
www.SunilOS.com 30
Instantiate V/AL/HT/HM
 Vector v = new Vector();//Default Capacity 10
 Vector v = new Vector(20);//Initial capacity 20
 Vector v = new Vector(20,15);//Initial capacity 20 and then
increase by 15
 ArrayList al = new ArrayList();//Default Capacity 10
 ArrayList al = new ArrayList(20);//Initial Capacity
 Hashtable ht = new Hashtable();
 Hashtable ht = new Hashtable(20);
 int i = al.capacity();//Returns the current capacity of this
vector
 int s = al.size();//Returns the number of components in this
vector
www.SunilOS.com 31
Synchronize Collection
Non-synchronized collections can be synchronized by
Collections class using following methods:
o Collection c = Collections.synchronizedCollection(c);
o List syncList = Collections.synchronizedList(al);
o Set syncSet = Collections.synchronizedSet(s);
o SortedSet syncSet =
Collections.synchronizedSortedSet(s);
o Map syncMap = Collections.synchronizedMap(m);
o TreeMap syncMap = Collections.synchronizedTreeMap(m);
Method equals() and hashCode()
Both methods are found in Object class.
They play imported role in identification and
searching of elements in Collections.
www.SunilOS.com 32
Marksheet – Search and Remove
 List l = new ArrayList()
 Marksheet m1 = new Marksheet();
 l.add(m1);
 Marksheet m2 = new Marksheet();
 l.add(m2);
 …
 l.contains(m2);//uses equals()
 l.remove(m2);//uses equals()
 …
 HashMap map = new HashMap();
 map.put(m1,”M1”);//use hashCode()
www.SunilOS.com 33
:Marksheet
-rollNo:String
-name : String
-physics :int
-chemistry :int
-maths :int
+getRollNo():String
+setRollNo()
+getPhysics ():int
+setPhysics ()
+getChemistry():int
+setChemistry()
+getMaths():int
+setMaths()
Overriding equals() and hashCode()
equals() is used to search or remove an object in a Collection.
hashCode() returns an integer that uniquely identifies an
object in Hash Collections.
If two objects are equals by equals() method then their hash
code produced by hashCode() method must be same.
If equals() method is overridden then it is recommended to
override hashCode() method to maintain uniqueness on an
object in the collection.
www.SunilOS.com 34
Marksheet: equals() and hashCode()
Here are overridden methods of Marksheet class
 public boolean equals(Object o) {
 if (o == null) return false;
 if (!(o instanceof Marksheet)) return false;
 Marksheet other = (Marksheet) o;
 return this.getRollNo().equals(other.getRollNo());
 }
 public int hashCode() {
 return rollNo.hashCode();
 }
www.SunilOS.com 35
Sorting
Framework provides two interfaces to sort the
collection.
Comparable and Comparator interfaces are used to compare
same type of objects.
Collections.sort() method uses either interface to
sort elements of a collection.
Sortable Class can implement Comparable interface and
provides natural ordering using primary key attribute.
Sortable Class may have multiple Comparators, comparing on
different attributes.
www.SunilOS.com 36
Sorting ( Cont. )
A collection storing objects of Sortable Class, can be sorted by
Collections.sort() method.
// Sorts using Comparable
Collections.sort(c)
// Sorts using Comparator object
Collections.sort(c, comparator)
www.SunilOS.com 37
Comparable Interface
 It does natural ordering.
 It uses primary key to order collection.
 public int compareTo(Marksheet m){
o return rollNo.compareTo(m.rollNo);
 }
 ArrayList marksheets = new
ArrayList();
 marksheets.add(new Marksheet());
 marksheets.add(new Marksheet());
 marksheets.add(new Marksheet());
 Collections.sort(marksheets);
www.SunilOS.com 38
:Marksheet
-rollNo:String
-name : String
-physics :int
…
+compareTo(Marksheet m):int
+getRollNo():String
+setRollNo()
+getPhysics ():int
+setPhysics ()
+getChemistry():int
+setChemistry()
+…..
:Comparable
Comparator Interface
 One class may have multiple
comparators.
 Number of comparators are depending on
number of attributes to be sorted.
 If Marskheets are sorted ascending by
‘name’ attribute then OrderByName
comparator is created.
 If Marskheets are sorted by ascending and
descending by ‘name’ attribute then
OrderByNameAsc and
OrderByNameDesc comparators are
created.
 More attributes are required to be sorted,
create more comparators.
www.SunilOS.com 39
:OrderByName
+compare(Marksheet m1,
Marksheet m2) : int
:Comparator
Comparator Interface ( cont.)
 class OrderByName implements Comparator<Marksheet>{
 public int compare(Marksheet m1,Marksheet m2){
 return m1.getName().compareTo(m2.getName());
 }
 }
 class OrderByMaths implements Comparator<Marksheet>{
 public int compare(Marksheet m1,Marksheet m2){
 return m1.getMaths() - m2.getMaths());
 }
 }
 Collections.sort(marksheets, new OrderByName());
 Collections.sort(marksheets, new OrderByMaths());
www.SunilOS.com 40
Return value ( -ve, 0 , +ve )
Methods compare() and compareTo(), both
return integer value that can be –ve, 0 or +ve.
o -ve indicates current (first) object is smaller than second
one.
o 0 indicates both are equals.
o +ve indicates current (first) object is greater than second
one.
www.SunilOS.com 41
www.SunilOS.com 42
Generics
Generics provides a way in order to communicate the
type of a collection to the compiler.
Defines type of a collection to compiler.
www.SunilOS.com 43
Before Generics
ArrayList l = new ArrayList ();
l.add("One");
l.add("Two");
String str = (String)l.get(1);
System.out.println(str);
Iterator it = l.iterator();
while (it.hasNext()) {
 String val = (String) it.next();
 ..
}
www.SunilOS.com 44
After Generics
ArrayList<String> l = new ArrayList<String>
();
l.add("One");
l.add("Two");
String str = l.get(1);
System.out.println(str);
Iterator<String> it = l.iterator();
while (it.hasNext()) {
 String val = it.next();
 ..
}
www.SunilOS.com 45
Generics
Before
HashMap map = new HashMap ();
map.put(“1”,”One”); //Correct
After
HashMap <String,Integer> map
= new HashMap <String,Integer>();
map.put(“1”,”One”); // Compilation Error
www.SunilOS.com 46
AutoBoxing/UnBoxing
Primitive – Wrapper Class
* byte - Byte
* short - Short
* int - Integer
* long - Long
* float - Float
* double - Double
* char - Character
* boolean - Boolean
www.SunilOS.com 47
Wrapper   Primitive
 double d = 5.5;
 Double dObj = new Double(d);
 double d1 = dObj.doubleValue();
 char c = 'A';
 Char cObj = new Char(c);
 char c1 = cObj.charValue();
 boolean b = true;
 Boolean bObj = new Boolean(b);
 boolean b1 = bObj.booleanValue();
www.SunilOS.com 48
Autoboxing UnBoxing
//Old
int i = 5;
Integer iObj = new Integer(i);
ArrayList l = new ArrayList();
l.add(iObj);
int k = iObj.intValue();
//New Autoboxing/UnBoxing
Integer iObj = i; //Autoboxing
int k = iObj; //UnBoxing
l.add(k); //Autoboxing
Concurrent Collection
www.SunilOS.com 49
Synchronized Collection V/S Concurrent Collection
Synchronized Collections are
slow in performance
Multiple threads can access a
synchronized collection
sequentially. Only one thread
can access the collection at a
time.
Permits null values
Synchronized Collection locks
the entire collection.
Static synchronized methods
of Collections class are used to
make a collection synchronize.
Concurrent Collections are
fast in performance
Multiple threads can access a
concurrent collection
concurrently. Multiple threads
can access the collection at a
time.
It does not permit null values.
Concurrent Collection does
not lock the entire collection,
it does lock only one element
at a time. In other words, each
element has a separate lock.
www.SunilOS.com 50
Concurrent Collection Key Interfaces
BlockingDeque
o LinkedBlockingDeque
o LinkedBlockingQueue
BlockingQueue
o ArrayBlockingQueue
o SynchronousQueue
o PriorityBlockingQueue
ConcurrentMap
o ConcurrentHashMap
ConcurrentNavigableMap
o ConcurrentSkipListMap
TransferQueue
o LinkedTransferQueue
www.SunilOS.com 51
Concurrent Collection
 public class TestHashMap extends Thread {
 private static ConcurrentHashMap<String, Integer> hm =
 new ConcurrentHashMap<String, Integer>();
 public void run() {
 hm.put("Four", 4);
 }
 public static void main(String[] args) {
 hm.put("One", 1);
 hm.put("Two", 2);
 hm.put("Three", 3);
 TestHashMap t1 = new TestHashMap();
 t1.start();
 for (Object o : hm.entrySet()) {
 System.out.println(o);
 }
 System.out.println(hm);
 } www.SunilOS.com 52
Java Stream API
www.SunilOS.com 53
java.util.Stream
Stream is a series of objects.
Source of a stream is an Array, Collection, or Other I/O
source.
Stream does not store data, it does only intermediate
operations.
It can filter and manipulate the elements of its source.
Streams are lazy, the source and intermediate operations do
nothing until objects are needed by the terminal operation.
www.SunilOS.com 54
Steams vs Collection
It does not store data
It is read-only
It can only be read once
Elements can not be directly
accessed
It stores data
It is read and write both
It can be read multiple times
Elements can be directly
accessed
i = list.get(0)
www.SunilOS.com 55
www.SunilOS.com 56
list.stream().map(e ->
e.phone).filter(e -> e.length() ==
10).distinct()
.collect(Collectors.collectingAndThe
n(Collectors.toList(), e -> {
Collections.shuffle(e);
return e.stream();
})).limit(3).forEach(e ->
System.out.println(e));
www.SunilOS.com 57
Intermediate Operations
map() -It maps a function to a stream and changes elements
of the stream
filter() - It filters element of the stream
distinct() - It removes duplicate elements from the stream
sorted() - It sorts elements of the stream
limit() - It limits and returns the stream according to the given
max size parameter
skip() - It skips the given N elements of the stream
www.SunilOS.com 58
Terminal operations
 collect() - It converts an stream into collection
 toArray() - It converts a stream into array
 count() -It returns the count of the elements in the stream
 reduce() - It reduces the elements of the stream according to the given identity value.
 min() - It returns the minimum element of the stream according to the given
comparator
 max() - It returns the maximum element of the stream according to the given
comparator
 anyMatch() - It will return any matched element according to the matched predicate. if
the stream is empty then return false
 allMatch() -It will return all the matched elements from a stream. returns true if the
stream is empty.
 noneMatch() - It returns the matched elements of the predicate. returns true if the
stream is empty
 findAny() - It returns an optional describing some elements of the stream
 findFirst() - It returns the first elements of the stream.
www.SunilOS.com 59
How to create a Stream
List<String> items = Arrays.asList("One",
"Two", "Three", "Three", "Four");
//Create Stream
Stream<String> stream = items.stream();
// Print all elements from stream
stream.forEach(e -> {
System.out.println(e);
});
www.SunilOS.com 60
Some Operations
items.stream().sorted().forEach(e -> {
System.out.println(e);
});
items.stream().map(e ->
e.toUpperCase()).forEach(e -> {
System.out.println(e);
});
items.stream().filter(e ->
e.startsWith("T")).distinct().map(e ->
e.toUpperCase()).sorted().forEach(e -> {
System.out.println(e);
});
www.SunilOS.com 61
Disclaimer
This is an educational presentation to enhance the skill
of computer science students.
This presentation is available for free to computer
science students.
Some internet images from different URLs are used in
this presentation to simplify technical examples and
correlate examples with the real world.
We are grateful to owners of these URLs and pictures.
www.SunilOS.com 62
Thank You!
www.SunilOS.com 63
www.SunilOS.com

More Related Content

What's hot

Collections Framework
Collections FrameworkCollections Framework
Collections FrameworkSunil OS
 
Resource Bundle
Resource BundleResource Bundle
Resource BundleSunil OS
 
Java Input Output and File Handling
Java Input Output and File HandlingJava Input Output and File Handling
Java Input Output and File HandlingSunil OS
 
Hibernate
Hibernate Hibernate
Hibernate Sunil OS
 
JAVA Variables and Operators
JAVA Variables and OperatorsJAVA Variables and Operators
JAVA Variables and OperatorsSunil OS
 
JavaScript
JavaScriptJavaScript
JavaScriptSunil OS
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/ServletSunil OS
 
Java Threads and Concurrency
Java Threads and ConcurrencyJava Threads and Concurrency
Java Threads and ConcurrencySunil OS
 
Machine learning ( Part 2 )
Machine learning ( Part 2 )Machine learning ( Part 2 )
Machine learning ( Part 2 )Sunil OS
 
Machine learning ( Part 1 )
Machine learning ( Part 1 )Machine learning ( Part 1 )
Machine learning ( Part 1 )Sunil OS
 
Python Part 1
Python Part 1Python Part 1
Python Part 1Sunil OS
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets Hitesh-Java
 

What's hot (20)

Collections Framework
Collections FrameworkCollections Framework
Collections Framework
 
Resource Bundle
Resource BundleResource Bundle
Resource Bundle
 
Java Input Output and File Handling
Java Input Output and File HandlingJava Input Output and File Handling
Java Input Output and File Handling
 
Log4 J
Log4 JLog4 J
Log4 J
 
Hibernate
Hibernate Hibernate
Hibernate
 
JAVA Variables and Operators
JAVA Variables and OperatorsJAVA Variables and Operators
JAVA Variables and Operators
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
Java Threads and Concurrency
Java Threads and ConcurrencyJava Threads and Concurrency
Java Threads and Concurrency
 
JAVA OOP
JAVA OOPJAVA OOP
JAVA OOP
 
Machine learning ( Part 2 )
Machine learning ( Part 2 )Machine learning ( Part 2 )
Machine learning ( Part 2 )
 
Machine learning ( Part 1 )
Machine learning ( Part 1 )Machine learning ( Part 1 )
Machine learning ( Part 1 )
 
CSS
CSS CSS
CSS
 
JUnit 4
JUnit 4JUnit 4
JUnit 4
 
PDBC
PDBCPDBC
PDBC
 
C++
C++C++
C++
 
Python Part 1
Python Part 1Python Part 1
Python Part 1
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets
 
OOP Core Concept
OOP Core ConceptOOP Core Concept
OOP Core Concept
 
Major Java 8 features
Major Java 8 featuresMajor Java 8 features
Major Java 8 features
 

Similar to Collection v3

Java ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaJava ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaEdureka!
 
Java10 Collections and Information
Java10 Collections and InformationJava10 Collections and Information
Java10 Collections and InformationSoftNutx
 
collectionframework-141116005344-conversion-gate01.pptx
collectionframework-141116005344-conversion-gate01.pptxcollectionframework-141116005344-conversion-gate01.pptx
collectionframework-141116005344-conversion-gate01.pptxhemanth248901
 
Tips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET ApplicationTips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET ApplicationJoni
 
Creating custom views
Creating custom viewsCreating custom views
Creating custom viewsMu Chun Wang
 
K is for Kotlin
K is for KotlinK is for Kotlin
K is for KotlinTechMagic
 
The Ring programming language version 1.5.3 book - Part 44 of 184
The Ring programming language version 1.5.3 book - Part 44 of 184The Ring programming language version 1.5.3 book - Part 44 of 184
The Ring programming language version 1.5.3 book - Part 44 of 184Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 54 of 184
The Ring programming language version 1.5.3 book - Part 54 of 184The Ring programming language version 1.5.3 book - Part 54 of 184
The Ring programming language version 1.5.3 book - Part 54 of 184Mahmoud Samir Fayed
 
Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Leonardo Borges
 
public class TrequeT extends AbstractListT { .pdf
  public class TrequeT extends AbstractListT {  .pdf  public class TrequeT extends AbstractListT {  .pdf
public class TrequeT extends AbstractListT { .pdfinfo30292
 

Similar to Collection v3 (20)

collections
collectionscollections
collections
 
Java ArrayList Tutorial | Edureka
Java ArrayList Tutorial | EdurekaJava ArrayList Tutorial | Edureka
Java ArrayList Tutorial | Edureka
 
Array in Java
Array in JavaArray in Java
Array in Java
 
Collection Core Concept
Collection Core ConceptCollection Core Concept
Collection Core Concept
 
java set1 program.pdf
java set1 program.pdfjava set1 program.pdf
java set1 program.pdf
 
Java10 Collections and Information
Java10 Collections and InformationJava10 Collections and Information
Java10 Collections and Information
 
collectionframework-141116005344-conversion-gate01.pptx
collectionframework-141116005344-conversion-gate01.pptxcollectionframework-141116005344-conversion-gate01.pptx
collectionframework-141116005344-conversion-gate01.pptx
 
Tips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET ApplicationTips and Tricks of Developing .NET Application
Tips and Tricks of Developing .NET Application
 
Collections
CollectionsCollections
Collections
 
Creating custom views
Creating custom viewsCreating custom views
Creating custom views
 
Collection and framework
Collection and frameworkCollection and framework
Collection and framework
 
K is for Kotlin
K is for KotlinK is for Kotlin
K is for Kotlin
 
The Ring programming language version 1.5.3 book - Part 44 of 184
The Ring programming language version 1.5.3 book - Part 44 of 184The Ring programming language version 1.5.3 book - Part 44 of 184
The Ring programming language version 1.5.3 book - Part 44 of 184
 
The Ring programming language version 1.5.3 book - Part 54 of 184
The Ring programming language version 1.5.3 book - Part 54 of 184The Ring programming language version 1.5.3 book - Part 54 of 184
The Ring programming language version 1.5.3 book - Part 54 of 184
 
Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015
 
Csharp_Chap13
Csharp_Chap13Csharp_Chap13
Csharp_Chap13
 
public class TrequeT extends AbstractListT { .pdf
  public class TrequeT extends AbstractListT {  .pdf  public class TrequeT extends AbstractListT {  .pdf
public class TrequeT extends AbstractListT { .pdf
 
CH1 ARRAY (1).pptx
CH1 ARRAY (1).pptxCH1 ARRAY (1).pptx
CH1 ARRAY (1).pptx
 
22.ppt
22.ppt22.ppt
22.ppt
 
Presentation1
Presentation1Presentation1
Presentation1
 

More from Sunil OS

Threads v3
Threads v3Threads v3
Threads v3Sunil OS
 
Exception Handling v3
Exception Handling v3Exception Handling v3
Exception Handling v3Sunil OS
 
Machine learning ( Part 3 )
Machine learning ( Part 3 )Machine learning ( Part 3 )
Machine learning ( Part 3 )Sunil OS
 
Python Pandas
Python PandasPython Pandas
Python PandasSunil OS
 
Python part2 v1
Python part2 v1Python part2 v1
Python part2 v1Sunil OS
 
Angular 8
Angular 8 Angular 8
Angular 8 Sunil OS
 
C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and OperatorsSunil OS
 
Rays Technologies
Rays TechnologiesRays Technologies
Rays TechnologiesSunil OS
 
Java Swing JFC
Java Swing JFCJava Swing JFC
Java Swing JFCSunil OS
 

More from Sunil OS (14)

DJango
DJangoDJango
DJango
 
OOP v3
OOP v3OOP v3
OOP v3
 
Threads v3
Threads v3Threads v3
Threads v3
 
Exception Handling v3
Exception Handling v3Exception Handling v3
Exception Handling v3
 
Machine learning ( Part 3 )
Machine learning ( Part 3 )Machine learning ( Part 3 )
Machine learning ( Part 3 )
 
Python Pandas
Python PandasPython Pandas
Python Pandas
 
Python part2 v1
Python part2 v1Python part2 v1
Python part2 v1
 
Angular 8
Angular 8 Angular 8
Angular 8
 
C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and Operators
 
C# Basics
C# BasicsC# Basics
C# Basics
 
Rays Technologies
Rays TechnologiesRays Technologies
Rays Technologies
 
C++ oop
C++ oopC++ oop
C++ oop
 
C Basics
C BasicsC Basics
C Basics
 
Java Swing JFC
Java Swing JFCJava Swing JFC
Java Swing JFC
 

Recently uploaded

Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 

Recently uploaded (20)

Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 

Collection v3

  • 2. Agenda Collection List/Set and Map Iterator and Fail Fast Why to use o ArrayList vs LinkedList o ArrayList vs Vector o HashMap vs HashTable o Iterator vs Enumeration Synchronize Collection Equals() and HashCode() www.SunilOS.com 2 Generics Wrapper Classes Autoboxing/Unboxing Concurrent collection Stream API
  • 3. www.SunilOS.com 3 Collections Framework Collection Set SortedSet List Queue Map SortedMap A Map is not a true Collection.
  • 4. www.SunilOS.com 4 Collections Framework A collections framework is a unified architecture for representing and manipulating collections. It consists of o Interfaces – Collection, Set, List, Queue o Concrete Classes – ArrayList, Hashmap, HashSet, etc. o Algorithm - searching and sorting
  • 5. www.SunilOS.com 5 Example SET [1,2,4,5,6,7,8] LIST [1,2,4,5,7,3,3,4,5] QUEUE [1,2,4,5,7,3,3,4,5] MAP [ {1,”ONE”}, {2,”TWO”}, {3,”THREE”} , {4,”THREE”}]
  • 6. www.SunilOS.com 6 Collection Interfaces Collection-A collection represents a group of objects known as its elements. Set - cannot contain duplicate elements. List- ordered collection, can contain duplicate elements. Queue - holds multiple elements prior to processing. a Queue provides additional insertion, extraction, and inspection operations. Map - an object that maps keys to values. A Map cannot contain duplicate keys. SortedSet - a Set that maintains its elements in ascending order. SortedMap - a Map that maintains its mappings in ascending key order.
  • 7. www.SunilOS.com 7 List by regular array public static void main(String[] args) { o String[] names = new String[5]; o for(int i=0;i<names.length; i++){ •names[i]= " No # " + i; o } o System.out.println("Names =" + names.length); } Disadvantages: o All elements should be of same type, here it is String. o Primitive data type arrays can be defined. o Array size is Fixed. Defined at the time of creation.
  • 8. www.SunilOS.com 8 List by Collection framework  public static void main(String[] args) { o ArrayList names = new ArrayList(); o for(int i=0;i<10; i++){ • names.add(" No # " + i); o } o System.out.println("Names =" + names.size()); o Object o = names.get(0); o String name = (String) o; o //String name = (String) names.get(0); o System.out.println(“ First Name is " + name);  } Advantages: o Unlimited size, no need to define array size at the time of creation. o Add object of any class, in other words any object in Java. o Add only objects but NOT primitive data types.
  • 9. www.SunilOS.com 9 Interface Collection add(o) Add a new element addAll(c) Add a collection clear() Remove all elements contains(o) Membership checking containsAll(c) Inclusion checking isEmpty() Whether it is empty iterator() Return an iterator remove(o) Remove an element removeAll(c) Remove a collection retainAll(c) Keep the elements size() The number of elements
  • 10. www.SunilOS.com 10 Interface List add(i,o) Inserts o at position i. get(i) Returns the i-th element. remove(i) Removes the i-th element. set(i,o) Replaces the i-th element with o. indexOf(o) Searches object from beginning. lastIndexOf(o) Searches object from end. sublist(start index, end index) Returns sublist. List allows multiple NULL values to be inserted.
  • 11. www.SunilOS.com 11 Interface Set Contains UNIQUE set of values. Contains at most one NULL value. Does not declare additional methods.
  • 12. www.SunilOS.com 12 Interface Queue  element(): Retrieves, but does not remove the head of this queue.  offer(E o): Inserts the specified element into this queue, if possible. Returns true if inserted.  peek(): Retrieves, but does not remove the head of this queue, returning null if this queue is empty.  poll(): Retrieves and removes the head of this queue, or null if this queue is empty.  remove(): Retrieves and removes the head of this queue. Throws exception Returns special value Insert add(e) offer(e) Remove remove() poll() Examine element() peek()
  • 13. www.SunilOS.com 13 Interface Map  clear() Removes all mappings.  containsKey(k) Checks membership of Key.  containsValue(v) Checks membership of Value.  entrySet() Set of key-value pairs.  get(k) Returns the value associated with Key.  isEmpty() Whether it is empty.  keySet() Returns Set of keys.  put(k,v) Inserts Key and Value pair.  remove(k) Removes the mapping of Key.  size() Returns size of Map.  values() Returns the List of values.
  • 14. www.SunilOS.com 14 Concrete Collections Interface Set List Map Impleme- ntation HashSet HashMap ArrayList TreeSet (SortedSe t) TreeMap (SortedMap) LinkedList Historical Vector Stack Hashtable Propert ies
  • 15. www.SunilOS.com 15 Concrete Collections HashSet Set hash table TreeSet SortedSet balanced binary tree ArrayList List resizable-array LinkedList List linked list Vector List resizable-array HashMap Map hash table TreeMap SortedMap balanced binary tree Hashtable Map hash table
  • 16. www.SunilOS.com 16 ArrayList implements List  public static void main(String[] args) { o ArrayList v = new ArrayList(); o v.add(“One"); o v.add(“Two"); o v.add(“Three"); o Integer i = new Integer(4); o v.add(i); o Integer value = (Integer) v.get(3); o System.out.println(“Index#3 value = " + value);  }
  • 17. www.SunilOS.com 17 Vector implements List public static void main(String[] args) { o Vector v = new Vector(); o v.add(“One"); o v.add(“Two"); o v.add(“Three"); o Integer i = new Integer(4); o v.add(i); o Integer value = (Integer) v.get(3); o System.out.println(“Index#3 value = " + value); }
  • 18. www.SunilOS.com 18 ArrayList – read all elements public static void main(String[] args) { o ArrayList v = new ArrayList(); o v.add(“One"); o ….. o int size = v.size(); o for (int j = 0; j < size; j++) { o System.out.println(j + " : " + v.get(j)); o } An object is converted into string by o.toString() method. toString() method is defined in Object class.
  • 19. www.SunilOS.com 19 toString() : converts object into string System.out.println(j + " : " + v.get(j)); OR Object o = v.get(j); System.out.println(j + " : " + o); OR Object o = v.get(j); System.out.println(j + ":" + o.toString());
  • 20. www.SunilOS.com 20 ArrayList – read all elements public static void main(String[] args) { o ArrayList v = new ArrayList(); o v.add("Jay"); o ….. o Iterator it = v.iterator(); //Gets an iterator o while(it.hasNext()) •Object o = it.next(); //Gets next element •System.out.println(o); •//System.out.println(it.next()); o } }
  • 21. www.SunilOS.com 21 Interface Iterator Methods oboolean hasNext(); oObject next(); ovoid remove(); The iterator() method is defined in the Collection interface
  • 22. www.SunilOS.com 22 Iterator Set s = new TreeSet(); s.add(“123”); .. Iterator it = s.iterator(); Vector v = new Vector(); v.add(“123”); .. Iterator it = v.iterator();
  • 23. www.SunilOS.com 23 Map – Hashtable and HashMap  public static void main(String[] args) { o HashMap m = new HashMap(); o m.put("RN1001", 890); o m.put("RN1002",900); o m.put("RN1003",780); o Integer i = (Integer)m.get("RN1002"); o Set keys = m.keySet(); o Collection vals = m.values()
  • 24. ArrayList vs Linked List www.SunilOS.com 24
  • 25. HashMap vs Hashtable HashMap Asynchronous. Not Thread Safe. Permits NULL values as Key and Value. High performance. Used in single-user application. HashTable Synchronous Thread Safe Does not permit NULL Slow performance Used in multi-user application. www.SunilOS.com 25
  • 26. ArrayList vs Vector ArrayList Asynchronous. Not Thread Safe. High performance. Grows by half of its size. Used in single-user application. Vector Synchronous Thread Safe Slow performance Double the size when grow Used in multi-user application. www.SunilOS.com 26 Grows by half of its size Grows by double of its size + +
  • 27. www.SunilOS.com 27 java.util.Enumeration Vector v = new Vector(); Enumeration e = v.elements() while (e.hasMoreElements()) { System.out.println(e.nextElement()); } Iterator and Enumeration both are same but Iterator has one additional method ‘remove()’. Enumeration can be used with only historical classes Vector, Hashtable, etc.
  • 28. Iterator vs Enumeration Iterator It is fail-fast. Can remove an object. Enumeration Not fail-fast Can’t remove an object Available with historical classes Vector, HashTable, Stack, etc. www.SunilOS.com 28
  • 29. Fail-fast If the collection is structurally modified at any time after the Iterator is created, in any way except through the Iterator's own remove() method, then Iterator will throw the following exception: oConcurrentModificationException. www.SunilOS.com 29
  • 30. www.SunilOS.com 30 Instantiate V/AL/HT/HM  Vector v = new Vector();//Default Capacity 10  Vector v = new Vector(20);//Initial capacity 20  Vector v = new Vector(20,15);//Initial capacity 20 and then increase by 15  ArrayList al = new ArrayList();//Default Capacity 10  ArrayList al = new ArrayList(20);//Initial Capacity  Hashtable ht = new Hashtable();  Hashtable ht = new Hashtable(20);  int i = al.capacity();//Returns the current capacity of this vector  int s = al.size();//Returns the number of components in this vector
  • 31. www.SunilOS.com 31 Synchronize Collection Non-synchronized collections can be synchronized by Collections class using following methods: o Collection c = Collections.synchronizedCollection(c); o List syncList = Collections.synchronizedList(al); o Set syncSet = Collections.synchronizedSet(s); o SortedSet syncSet = Collections.synchronizedSortedSet(s); o Map syncMap = Collections.synchronizedMap(m); o TreeMap syncMap = Collections.synchronizedTreeMap(m);
  • 32. Method equals() and hashCode() Both methods are found in Object class. They play imported role in identification and searching of elements in Collections. www.SunilOS.com 32
  • 33. Marksheet – Search and Remove  List l = new ArrayList()  Marksheet m1 = new Marksheet();  l.add(m1);  Marksheet m2 = new Marksheet();  l.add(m2);  …  l.contains(m2);//uses equals()  l.remove(m2);//uses equals()  …  HashMap map = new HashMap();  map.put(m1,”M1”);//use hashCode() www.SunilOS.com 33 :Marksheet -rollNo:String -name : String -physics :int -chemistry :int -maths :int +getRollNo():String +setRollNo() +getPhysics ():int +setPhysics () +getChemistry():int +setChemistry() +getMaths():int +setMaths()
  • 34. Overriding equals() and hashCode() equals() is used to search or remove an object in a Collection. hashCode() returns an integer that uniquely identifies an object in Hash Collections. If two objects are equals by equals() method then their hash code produced by hashCode() method must be same. If equals() method is overridden then it is recommended to override hashCode() method to maintain uniqueness on an object in the collection. www.SunilOS.com 34
  • 35. Marksheet: equals() and hashCode() Here are overridden methods of Marksheet class  public boolean equals(Object o) {  if (o == null) return false;  if (!(o instanceof Marksheet)) return false;  Marksheet other = (Marksheet) o;  return this.getRollNo().equals(other.getRollNo());  }  public int hashCode() {  return rollNo.hashCode();  } www.SunilOS.com 35
  • 36. Sorting Framework provides two interfaces to sort the collection. Comparable and Comparator interfaces are used to compare same type of objects. Collections.sort() method uses either interface to sort elements of a collection. Sortable Class can implement Comparable interface and provides natural ordering using primary key attribute. Sortable Class may have multiple Comparators, comparing on different attributes. www.SunilOS.com 36
  • 37. Sorting ( Cont. ) A collection storing objects of Sortable Class, can be sorted by Collections.sort() method. // Sorts using Comparable Collections.sort(c) // Sorts using Comparator object Collections.sort(c, comparator) www.SunilOS.com 37
  • 38. Comparable Interface  It does natural ordering.  It uses primary key to order collection.  public int compareTo(Marksheet m){ o return rollNo.compareTo(m.rollNo);  }  ArrayList marksheets = new ArrayList();  marksheets.add(new Marksheet());  marksheets.add(new Marksheet());  marksheets.add(new Marksheet());  Collections.sort(marksheets); www.SunilOS.com 38 :Marksheet -rollNo:String -name : String -physics :int … +compareTo(Marksheet m):int +getRollNo():String +setRollNo() +getPhysics ():int +setPhysics () +getChemistry():int +setChemistry() +….. :Comparable
  • 39. Comparator Interface  One class may have multiple comparators.  Number of comparators are depending on number of attributes to be sorted.  If Marskheets are sorted ascending by ‘name’ attribute then OrderByName comparator is created.  If Marskheets are sorted by ascending and descending by ‘name’ attribute then OrderByNameAsc and OrderByNameDesc comparators are created.  More attributes are required to be sorted, create more comparators. www.SunilOS.com 39 :OrderByName +compare(Marksheet m1, Marksheet m2) : int :Comparator
  • 40. Comparator Interface ( cont.)  class OrderByName implements Comparator<Marksheet>{  public int compare(Marksheet m1,Marksheet m2){  return m1.getName().compareTo(m2.getName());  }  }  class OrderByMaths implements Comparator<Marksheet>{  public int compare(Marksheet m1,Marksheet m2){  return m1.getMaths() - m2.getMaths());  }  }  Collections.sort(marksheets, new OrderByName());  Collections.sort(marksheets, new OrderByMaths()); www.SunilOS.com 40
  • 41. Return value ( -ve, 0 , +ve ) Methods compare() and compareTo(), both return integer value that can be –ve, 0 or +ve. o -ve indicates current (first) object is smaller than second one. o 0 indicates both are equals. o +ve indicates current (first) object is greater than second one. www.SunilOS.com 41
  • 42. www.SunilOS.com 42 Generics Generics provides a way in order to communicate the type of a collection to the compiler. Defines type of a collection to compiler.
  • 43. www.SunilOS.com 43 Before Generics ArrayList l = new ArrayList (); l.add("One"); l.add("Two"); String str = (String)l.get(1); System.out.println(str); Iterator it = l.iterator(); while (it.hasNext()) {  String val = (String) it.next();  .. }
  • 44. www.SunilOS.com 44 After Generics ArrayList<String> l = new ArrayList<String> (); l.add("One"); l.add("Two"); String str = l.get(1); System.out.println(str); Iterator<String> it = l.iterator(); while (it.hasNext()) {  String val = it.next();  .. }
  • 45. www.SunilOS.com 45 Generics Before HashMap map = new HashMap (); map.put(“1”,”One”); //Correct After HashMap <String,Integer> map = new HashMap <String,Integer>(); map.put(“1”,”One”); // Compilation Error
  • 46. www.SunilOS.com 46 AutoBoxing/UnBoxing Primitive – Wrapper Class * byte - Byte * short - Short * int - Integer * long - Long * float - Float * double - Double * char - Character * boolean - Boolean
  • 47. www.SunilOS.com 47 Wrapper   Primitive  double d = 5.5;  Double dObj = new Double(d);  double d1 = dObj.doubleValue();  char c = 'A';  Char cObj = new Char(c);  char c1 = cObj.charValue();  boolean b = true;  Boolean bObj = new Boolean(b);  boolean b1 = bObj.booleanValue();
  • 48. www.SunilOS.com 48 Autoboxing UnBoxing //Old int i = 5; Integer iObj = new Integer(i); ArrayList l = new ArrayList(); l.add(iObj); int k = iObj.intValue(); //New Autoboxing/UnBoxing Integer iObj = i; //Autoboxing int k = iObj; //UnBoxing l.add(k); //Autoboxing
  • 50. Synchronized Collection V/S Concurrent Collection Synchronized Collections are slow in performance Multiple threads can access a synchronized collection sequentially. Only one thread can access the collection at a time. Permits null values Synchronized Collection locks the entire collection. Static synchronized methods of Collections class are used to make a collection synchronize. Concurrent Collections are fast in performance Multiple threads can access a concurrent collection concurrently. Multiple threads can access the collection at a time. It does not permit null values. Concurrent Collection does not lock the entire collection, it does lock only one element at a time. In other words, each element has a separate lock. www.SunilOS.com 50
  • 51. Concurrent Collection Key Interfaces BlockingDeque o LinkedBlockingDeque o LinkedBlockingQueue BlockingQueue o ArrayBlockingQueue o SynchronousQueue o PriorityBlockingQueue ConcurrentMap o ConcurrentHashMap ConcurrentNavigableMap o ConcurrentSkipListMap TransferQueue o LinkedTransferQueue www.SunilOS.com 51
  • 52. Concurrent Collection  public class TestHashMap extends Thread {  private static ConcurrentHashMap<String, Integer> hm =  new ConcurrentHashMap<String, Integer>();  public void run() {  hm.put("Four", 4);  }  public static void main(String[] args) {  hm.put("One", 1);  hm.put("Two", 2);  hm.put("Three", 3);  TestHashMap t1 = new TestHashMap();  t1.start();  for (Object o : hm.entrySet()) {  System.out.println(o);  }  System.out.println(hm);  } www.SunilOS.com 52
  • 54. java.util.Stream Stream is a series of objects. Source of a stream is an Array, Collection, or Other I/O source. Stream does not store data, it does only intermediate operations. It can filter and manipulate the elements of its source. Streams are lazy, the source and intermediate operations do nothing until objects are needed by the terminal operation. www.SunilOS.com 54
  • 55. Steams vs Collection It does not store data It is read-only It can only be read once Elements can not be directly accessed It stores data It is read and write both It can be read multiple times Elements can be directly accessed i = list.get(0) www.SunilOS.com 55
  • 57. list.stream().map(e -> e.phone).filter(e -> e.length() == 10).distinct() .collect(Collectors.collectingAndThe n(Collectors.toList(), e -> { Collections.shuffle(e); return e.stream(); })).limit(3).forEach(e -> System.out.println(e)); www.SunilOS.com 57
  • 58. Intermediate Operations map() -It maps a function to a stream and changes elements of the stream filter() - It filters element of the stream distinct() - It removes duplicate elements from the stream sorted() - It sorts elements of the stream limit() - It limits and returns the stream according to the given max size parameter skip() - It skips the given N elements of the stream www.SunilOS.com 58
  • 59. Terminal operations  collect() - It converts an stream into collection  toArray() - It converts a stream into array  count() -It returns the count of the elements in the stream  reduce() - It reduces the elements of the stream according to the given identity value.  min() - It returns the minimum element of the stream according to the given comparator  max() - It returns the maximum element of the stream according to the given comparator  anyMatch() - It will return any matched element according to the matched predicate. if the stream is empty then return false  allMatch() -It will return all the matched elements from a stream. returns true if the stream is empty.  noneMatch() - It returns the matched elements of the predicate. returns true if the stream is empty  findAny() - It returns an optional describing some elements of the stream  findFirst() - It returns the first elements of the stream. www.SunilOS.com 59
  • 60. How to create a Stream List<String> items = Arrays.asList("One", "Two", "Three", "Three", "Four"); //Create Stream Stream<String> stream = items.stream(); // Print all elements from stream stream.forEach(e -> { System.out.println(e); }); www.SunilOS.com 60
  • 61. Some Operations items.stream().sorted().forEach(e -> { System.out.println(e); }); items.stream().map(e -> e.toUpperCase()).forEach(e -> { System.out.println(e); }); items.stream().filter(e -> e.startsWith("T")).distinct().map(e -> e.toUpperCase()).sorted().forEach(e -> { System.out.println(e); }); www.SunilOS.com 61
  • 62. Disclaimer This is an educational presentation to enhance the skill of computer science students. This presentation is available for free to computer science students. Some internet images from different URLs are used in this presentation to simplify technical examples and correlate examples with the real world. We are grateful to owners of these URLs and pictures. www.SunilOS.com 62

Editor's Notes

  1. www.sunilos.com