SlideShare a Scribd company logo
Introduction to Java 2
    Programming
                         Lecture 5
                  Array and Collections
                    Ref: www.ldodds.com
 Edited by Hoàng Văn Hậu – VTC Academy – THSoft co.,ltd
 https://play.google.com/store/apps/developer?id=THSoft+Co.,Ltd
Introduction
    Course Objectives
    Organization of the Book




VTC Academy      THSoft Co.,Ltd   2
Course Objectives
   Upon completing the course, you will understand
        Create, compile, and run Java programs
        Primitive data types
        Java control flow
        Methods
        Arrays (for teaching Java in two semesters, this could be the end)
        Object-oriented programming
        Core Java classes (Swing, exception, internationalization, multithreading,
         multimedia, I/O, networking, Java Collections Framework)




VTC Academy                 THSoft Co.,Ltd                     3
Course Objectives, cont.
    You will be able to
      Develop programs using Eclipse IDE
      Write simple programs using primitive data types,
       control statements, methods, and arrays.
      Create and use methods

      Write interesting projects




VTC Academy        THSoft Co.,Ltd          4
Session 05: GENERIC PROGRAMMING
             AND COLLECTIONS
   Generic class
   Arrays
       Working with arrays
       Java API support for arrays
   Collection classes
       Types of collection
       Working with Collections




VTC Academy            THSoft Co.,Ltd   5
Definition of a simple generic class
        class Pair <T> {
             public T first;
             public T second;
              public Pair (T f, T s) { first = f; second = s; }
              public Pair () { first = null; second = null; }
         }
     you instantiate the generic class by substituting actual types for
      type variables, as: Pair <String>
     you can think the result as a class with a constructor
             public Pair (String f, String s), etc . .
     you can then use the instantiated generic class as it were a normal
      class (almost):
             Pair <String> pair = new Pair <String> ("1","2");



VTC Academy                   THSoft Co.,Ltd                      6
Multiple type parameters allowed
     you can have multiple type parameters
       class Pair <T, U> {
           public T first;
           public U second;
            public Pair (T x, U y) { first = x; second = y; }
            public Pair () { first = null; second = null; }
        }

     to instantiate: Pair <String, Number>


VTC Academy            THSoft Co.,Ltd                7
How to use generic class
  Pair<String> k = new Pair<String>("abc", "xyz");
  Pair<double> d = new Pair<T>();// error
  Pair<Double> d = new Pair<Double>();
  System.out.println(k.getFirst() + k.second);

  Pair<String, Double> k = new Pair<String, Double>("xxxx", 10.8);
  System.out.println(k.first + k.second);




                                           Illustration on code
VTC Academy         THSoft Co.,Ltd             8
Java Arrays – Copying
   Don’t copy arrays “by hand” by looping over
    the array
   The System class has an arrayCopy method
    to do this efficiently
int array1[] = new int[10];
int array2[] = new int[10];
//assume we add items to array1

//copy array1 into array2
System.arrayCopy(array1, 0, array2, 0, 10);
//copy last 5 elements in array1 into first 5 of array2
System.arrayCopy(array1, 5, array2, 0, 5);


VTC Academy        THSoft Co.,Ltd           9
Java Arrays – Sorting
   Again no need to do this “by hand”.
   The java.util.Arrays class has methods to sort
    different kinds of arrays

int myArray[] = new int[] {5, 4, 3, 2, 1};
java.util.Arrays.sort(myArray);
//myArray now holds 1, 2, 3, 4, 5


   Sorting arrays of objects is involves some extra
    work, as we’ll see later…

VTC Academy        THSoft Co.,Ltd            10
Java Arrays
   Advantages
       Very efficient, quick to access and add to
       Type-safe, can only add items that match the declared type of
        the array
   Disadvantages
       Fixed size, some overhead in copying/resizing
       Can’t tell how many items in the array, just how large it was
        declared to be
       Limited functionality, need more general functionality


VTC Academy             THSoft Co.,Ltd                11
Java Collections
   What are they?
       A number of pre-packaged implementations of common
        ‘container’ classes, such as LinkedLists, Sets, etc.
       Part of the java.util package.
   Advantages
       Very flexible, can hold any kind of object
   Disadvantages
       Not as efficient as arrays (for some uses)
       Not type-safe. Store references to Object


VTC Academy             THSoft Co.,Ltd               12
Java Collections
   Two Types of Containers
   Collections
       Group of objects, which may restricted or manipulated in
        some way
       E.g. an ordered to make a List or LinkedList
       E.g. a Set, an unordered group which can only contain one of
        each item
   Maps
       Associative array, Dictionary, Lookup Table, Hash
       A group of name-value pairs

VTC Academy            THSoft Co.,Ltd               13
Java Collections




VTC Academy     THSoft Co.,Ltd   14
Java Collections
   Several implementations associated with each of
    the basic interfaces
   Each has its own advantages/disadvantages
   Maps
       HashMap, SortedMap
   Lists
       ArrayList
   Sets
       HashSet, SortedSet
VTC Academy           THSoft Co.,Ltd   15
Java Collections – The Basics
   HashMap and ArrayList are most commonly
    encountered
   Usual object creation syntax
   Generally hold references to the interface and not the
    specific collection
       Can then process them generically

Li st <Obj ect > m yLi st = new Ar r ayLi st <Obj ect >( ) ;
Li st <Bi gDeci m > ot her Li st = new Ar r ayLi st <Bi gDeci m >( 5) ;
                 al                                            al
Map<St r i ng, St r i ng> m ap = new HashM
                           yM                   ap( ) ;
Set <Fl oat > t hi ngs = new HashSet <Fl oat >( ) ;


VTC Academy             THSoft Co.,Ltd                16
Java Collections – Adding Items
   For Collections, use add()
List myList = new ArrayList();
myList.add(“A String”);
myList.add(“Other String”);

   For Maps, use put()
Map myMap = new HashMap();
myMap.put(“google”, “http://www.google.com”);
mpMap.put(“yahoo”, “http://www.yahoo.com”);




VTC Academy        THSoft Co.,Ltd      17
Java Collections – Copying
   Very easy, just use addAll()

List myList = new ArrayList();
//assume we add items to the list

List otherList = new ArrayList();
myList.addAll(myList);




VTC Academy        THSoft Co.,Ltd   18
Collections – Getting Individual
                 Items
   Use get()
   Note that we have to cast the object to its original type.
   Collections…
String s = (String)myList.get(1); //get first element
String s2 = (String)myList.get(10); //get tenth element


   Maps…
String s = (String)myMap.get(“google”);
String s2 = (String)mpMap.get(“yahoo”);




VTC Academy          THSoft Co.,Ltd              19
Collections – Getting all items
   For Lists, we could use a for loop, and loop
    through the list to get() each item
   But this doesn’t work for Maps.
   To allow generic handling of collections, Java
    defines an object called an Iterator
       An object whose function is to walk through a
        Collection of objects and provide access to each
        object in sequence

VTC Academy          THSoft Co.,Ltd           20
Collections – Getting all items
   Get an iterator using the iterator()
    method
   Iterator objects have three methods:
     next() – gets the next item in the collection
     hasNext() – tests whether it has reached the end
     remove() – removes the item just returned

   Basic iterators only go forwards
       Lists objects have a ListIterator that can go forward
        and backward

VTC Academy           THSoft Co.,Ltd           21
Collections – Getting all items
   Simple example:
List myList = new ArrayList();
//we add items

Iterator iterator = myList.iterator();
while (iterator.hasNext())
{
  String s = (String)iterator.next();
  //do something with it
}



VTC Academy      THSoft Co.,Ltd          22
Collections – Other Functions
   The java.util.Collections class has many
    useful methods for working with collections
       min, max, sort, reverse, search, shuffle
   Virtually all require your objects to implement
    an extra interface, called Comparable




VTC Academy           THSoft Co.,Ltd               23
Collections – Comparable
    The Comparable interface labels objects that can be
     compared to one another.
        Allows sorting algorithms to be written to work on any
         kind of object
        so long as they support this interface
    Single method to implement
 public int compareTo(Object o);
  Returns
     A negative number of parameter is less than the object
     
    Zero if they’re equal
    A positive number if the parameter is greater than the
     object
VTC Academy          THSoft Co.,Ltd              24
Collections – Comparator
   Like Comparable, but is a stand-alone object used
    for comparing other objects
       Useful when you want to use your criteria, not that of the
        implementor of the object.
       Or altering the behaviour of a system
   Many of the methods in the Collections object all a
    Comparator to be specified
   Again has single method:
public int compare(Object obj1, Object obj2)



VTC Academy            THSoft Co.,Ltd                25
Action on class
   Teacher
     hauc2@yahoo.com
     0984380003
       https://play.google.com/store/search?q=thsoft+co&c=apps
   Captions
   Members



VTC Academy              THSoft Co.,Ltd                 26

More Related Content

DOCX
First fare 2010 java-introduction
PDF
Scala Collections : Java 8 on Steroids
PPTX
Collections
PDF
Collections in Java Notes
PDF
Java Collections API
DOCX
Java collections notes
PDF
Collections In Java
First fare 2010 java-introduction
Scala Collections : Java 8 on Steroids
Collections
Collections in Java Notes
Java Collections API
Java collections notes
Collections In Java

What's hot (17)

PPTX
Scala for curious
PDF
Lecture20 vector
PPTX
Function Java Vector class
PDF
Scala at GenevaJUG by Iulian Dragos
PDF
Java Collections Tutorials
PPS
Wrapper class
PDF
Scala collections api expressivity and brevity upgrade from java
PDF
scalaliftoff2009.pdf
PDF
Getting Started With Scala
PDF
Pragmatic Real-World Scala (short version)
PDF
Java Wrapper Classes and I/O Mechanisms
PDF
Stepping Up : A Brief Intro to Scala
PPTX
Java - Collections framework
PDF
Built in classes in java
PDF
Scala categorytheory
Scala for curious
Lecture20 vector
Function Java Vector class
Scala at GenevaJUG by Iulian Dragos
Java Collections Tutorials
Wrapper class
Scala collections api expressivity and brevity upgrade from java
scalaliftoff2009.pdf
Getting Started With Scala
Pragmatic Real-World Scala (short version)
Java Wrapper Classes and I/O Mechanisms
Stepping Up : A Brief Intro to Scala
Java - Collections framework
Built in classes in java
Scala categorytheory
Ad

Viewers also liked (12)

PPTX
Unusual C# - OOP
PPTX
Generic Programming &amp; Collection
PDF
Diving in OOP (Day 3): Polymorphism and Inheritance (Dynamic Binding/Run Time...
PPSX
C#.net applied OOP - Batch 3
PDF
Introduction to TFS 2013
PPSX
C#, OOP introduction and examples
PPT
OOP Basics
PPSX
C# - Part 1
PPSX
MS SQL Server
PPSX
C# OOP Advanced Concepts
PPSX
Introduction to .net framework
Unusual C# - OOP
Generic Programming &amp; Collection
Diving in OOP (Day 3): Polymorphism and Inheritance (Dynamic Binding/Run Time...
C#.net applied OOP - Batch 3
Introduction to TFS 2013
C#, OOP introduction and examples
OOP Basics
C# - Part 1
MS SQL Server
C# OOP Advanced Concepts
Introduction to .net framework
Ad

Similar to Collections and generic class (20)

PPTX
Comparable/ Comparator
DOCX
Java mcq
PDF
Introduction to new features in java 8
PPT
inner-classes-abstract-classevgdddfs.ppt
PPT
Introduction to Intermediate Java
PPTX
oops concept in java | object oriented programming in java
PPTX
Lecture 9
PPT
Scala Talk at FOSDEM 2009
PDF
Collections in java
PDF
Collections
PDF
Lecture 24
PPT
Interfaces .ppt
PPT
Interfaces.ppt
PPTX
VTUOOPMCA5THMODULECollection OverV .pptx
PPTX
mca5thCollection OverViCollection O.pptx
PPTX
VTUOOPMCA5THMODULECollection OverVi.pptx
PPTX
VTUOOPMCA5THMODULEvCollection OverV.pptx
Comparable/ Comparator
Java mcq
Introduction to new features in java 8
inner-classes-abstract-classevgdddfs.ppt
Introduction to Intermediate Java
oops concept in java | object oriented programming in java
Lecture 9
Scala Talk at FOSDEM 2009
Collections in java
Collections
Lecture 24
Interfaces .ppt
Interfaces.ppt
VTUOOPMCA5THMODULECollection OverV .pptx
mca5thCollection OverViCollection O.pptx
VTUOOPMCA5THMODULECollection OverVi.pptx
VTUOOPMCA5THMODULEvCollection OverV.pptx

Recently uploaded (20)

PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
A Presentation on Artificial Intelligence
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Univ-Connecticut-ChatGPT-Presentaion.pdf
MIND Revenue Release Quarter 2 2025 Press Release
OMC Textile Division Presentation 2021.pptx
Heart disease approach using modified random forest and particle swarm optimi...
Getting Started with Data Integration: FME Form 101
Encapsulation_ Review paper, used for researhc scholars
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
A comparative analysis of optical character recognition models for extracting...
A Presentation on Artificial Intelligence
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Group 1 Presentation -Planning and Decision Making .pptx
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm

Collections and generic class

  • 1. Introduction to Java 2 Programming Lecture 5 Array and Collections Ref: www.ldodds.com Edited by Hoàng Văn Hậu – VTC Academy – THSoft co.,ltd https://play.google.com/store/apps/developer?id=THSoft+Co.,Ltd
  • 2. Introduction  Course Objectives  Organization of the Book VTC Academy THSoft Co.,Ltd 2
  • 3. Course Objectives  Upon completing the course, you will understand  Create, compile, and run Java programs  Primitive data types  Java control flow  Methods  Arrays (for teaching Java in two semesters, this could be the end)  Object-oriented programming  Core Java classes (Swing, exception, internationalization, multithreading, multimedia, I/O, networking, Java Collections Framework) VTC Academy THSoft Co.,Ltd 3
  • 4. Course Objectives, cont.  You will be able to  Develop programs using Eclipse IDE  Write simple programs using primitive data types, control statements, methods, and arrays.  Create and use methods  Write interesting projects VTC Academy THSoft Co.,Ltd 4
  • 5. Session 05: GENERIC PROGRAMMING AND COLLECTIONS  Generic class  Arrays  Working with arrays  Java API support for arrays  Collection classes  Types of collection  Working with Collections VTC Academy THSoft Co.,Ltd 5
  • 6. Definition of a simple generic class class Pair <T> { public T first; public T second; public Pair (T f, T s) { first = f; second = s; } public Pair () { first = null; second = null; } }  you instantiate the generic class by substituting actual types for type variables, as: Pair <String>  you can think the result as a class with a constructor public Pair (String f, String s), etc . .  you can then use the instantiated generic class as it were a normal class (almost): Pair <String> pair = new Pair <String> ("1","2"); VTC Academy THSoft Co.,Ltd 6
  • 7. Multiple type parameters allowed  you can have multiple type parameters class Pair <T, U> { public T first; public U second; public Pair (T x, U y) { first = x; second = y; } public Pair () { first = null; second = null; } }  to instantiate: Pair <String, Number> VTC Academy THSoft Co.,Ltd 7
  • 8. How to use generic class Pair<String> k = new Pair<String>("abc", "xyz"); Pair<double> d = new Pair<T>();// error Pair<Double> d = new Pair<Double>(); System.out.println(k.getFirst() + k.second); Pair<String, Double> k = new Pair<String, Double>("xxxx", 10.8); System.out.println(k.first + k.second); Illustration on code VTC Academy THSoft Co.,Ltd 8
  • 9. Java Arrays – Copying  Don’t copy arrays “by hand” by looping over the array  The System class has an arrayCopy method to do this efficiently int array1[] = new int[10]; int array2[] = new int[10]; //assume we add items to array1 //copy array1 into array2 System.arrayCopy(array1, 0, array2, 0, 10); //copy last 5 elements in array1 into first 5 of array2 System.arrayCopy(array1, 5, array2, 0, 5); VTC Academy THSoft Co.,Ltd 9
  • 10. Java Arrays – Sorting  Again no need to do this “by hand”.  The java.util.Arrays class has methods to sort different kinds of arrays int myArray[] = new int[] {5, 4, 3, 2, 1}; java.util.Arrays.sort(myArray); //myArray now holds 1, 2, 3, 4, 5  Sorting arrays of objects is involves some extra work, as we’ll see later… VTC Academy THSoft Co.,Ltd 10
  • 11. Java Arrays  Advantages  Very efficient, quick to access and add to  Type-safe, can only add items that match the declared type of the array  Disadvantages  Fixed size, some overhead in copying/resizing  Can’t tell how many items in the array, just how large it was declared to be  Limited functionality, need more general functionality VTC Academy THSoft Co.,Ltd 11
  • 12. Java Collections  What are they?  A number of pre-packaged implementations of common ‘container’ classes, such as LinkedLists, Sets, etc.  Part of the java.util package.  Advantages  Very flexible, can hold any kind of object  Disadvantages  Not as efficient as arrays (for some uses)  Not type-safe. Store references to Object VTC Academy THSoft Co.,Ltd 12
  • 13. Java Collections  Two Types of Containers  Collections  Group of objects, which may restricted or manipulated in some way  E.g. an ordered to make a List or LinkedList  E.g. a Set, an unordered group which can only contain one of each item  Maps  Associative array, Dictionary, Lookup Table, Hash  A group of name-value pairs VTC Academy THSoft Co.,Ltd 13
  • 14. Java Collections VTC Academy THSoft Co.,Ltd 14
  • 15. Java Collections  Several implementations associated with each of the basic interfaces  Each has its own advantages/disadvantages  Maps  HashMap, SortedMap  Lists  ArrayList  Sets  HashSet, SortedSet VTC Academy THSoft Co.,Ltd 15
  • 16. Java Collections – The Basics  HashMap and ArrayList are most commonly encountered  Usual object creation syntax  Generally hold references to the interface and not the specific collection  Can then process them generically Li st <Obj ect > m yLi st = new Ar r ayLi st <Obj ect >( ) ; Li st <Bi gDeci m > ot her Li st = new Ar r ayLi st <Bi gDeci m >( 5) ; al al Map<St r i ng, St r i ng> m ap = new HashM yM ap( ) ; Set <Fl oat > t hi ngs = new HashSet <Fl oat >( ) ; VTC Academy THSoft Co.,Ltd 16
  • 17. Java Collections – Adding Items  For Collections, use add() List myList = new ArrayList(); myList.add(“A String”); myList.add(“Other String”);  For Maps, use put() Map myMap = new HashMap(); myMap.put(“google”, “http://www.google.com”); mpMap.put(“yahoo”, “http://www.yahoo.com”); VTC Academy THSoft Co.,Ltd 17
  • 18. Java Collections – Copying  Very easy, just use addAll() List myList = new ArrayList(); //assume we add items to the list List otherList = new ArrayList(); myList.addAll(myList); VTC Academy THSoft Co.,Ltd 18
  • 19. Collections – Getting Individual Items  Use get()  Note that we have to cast the object to its original type.  Collections… String s = (String)myList.get(1); //get first element String s2 = (String)myList.get(10); //get tenth element  Maps… String s = (String)myMap.get(“google”); String s2 = (String)mpMap.get(“yahoo”); VTC Academy THSoft Co.,Ltd 19
  • 20. Collections – Getting all items  For Lists, we could use a for loop, and loop through the list to get() each item  But this doesn’t work for Maps.  To allow generic handling of collections, Java defines an object called an Iterator  An object whose function is to walk through a Collection of objects and provide access to each object in sequence VTC Academy THSoft Co.,Ltd 20
  • 21. Collections – Getting all items  Get an iterator using the iterator() method  Iterator objects have three methods:  next() – gets the next item in the collection  hasNext() – tests whether it has reached the end  remove() – removes the item just returned  Basic iterators only go forwards  Lists objects have a ListIterator that can go forward and backward VTC Academy THSoft Co.,Ltd 21
  • 22. Collections – Getting all items  Simple example: List myList = new ArrayList(); //we add items Iterator iterator = myList.iterator(); while (iterator.hasNext()) { String s = (String)iterator.next(); //do something with it } VTC Academy THSoft Co.,Ltd 22
  • 23. Collections – Other Functions  The java.util.Collections class has many useful methods for working with collections  min, max, sort, reverse, search, shuffle  Virtually all require your objects to implement an extra interface, called Comparable VTC Academy THSoft Co.,Ltd 23
  • 24. Collections – Comparable  The Comparable interface labels objects that can be compared to one another.  Allows sorting algorithms to be written to work on any kind of object  so long as they support this interface  Single method to implement public int compareTo(Object o);  Returns A negative number of parameter is less than the object   Zero if they’re equal  A positive number if the parameter is greater than the object VTC Academy THSoft Co.,Ltd 24
  • 25. Collections – Comparator  Like Comparable, but is a stand-alone object used for comparing other objects  Useful when you want to use your criteria, not that of the implementor of the object.  Or altering the behaviour of a system  Many of the methods in the Collections object all a Comparator to be specified  Again has single method: public int compare(Object obj1, Object obj2) VTC Academy THSoft Co.,Ltd 25
  • 26. Action on class  Teacher  hauc2@yahoo.com  0984380003  https://play.google.com/store/search?q=thsoft+co&c=apps  Captions  Members VTC Academy THSoft Co.,Ltd 26