• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Collections and generic class
 

Collections and generic class

on

  • 605 views

bài 5/5. Lập trình Java cơ bản

bài 5/5. Lập trình Java cơ bản

vtc academyc, thsoft co.,ltd

Statistics

Views

Total Views
605
Views on SlideShare
601
Embed Views
4

Actions

Likes
0
Downloads
10
Comments
0

1 Embed 4

http://www.linkedin.com 4

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Collections and generic class Collections and generic class Presentation Transcript

    • 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 BookVTC 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 projectsVTC 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 CollectionsVTC 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 codeVTC 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 efficientlyint array1[] = new int[10];int array2[] = new int[10];//assume we add items to array1//copy array1 into array2System.arrayCopy(array1, 0, array2, 0, 10);//copy last 5 elements in array1 into first 5 of array2System.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 arraysint 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 functionalityVTC 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 ObjectVTC 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 pairsVTC Academy THSoft Co.,Ltd 13
    • Java CollectionsVTC 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, SortedSetVTC 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 genericallyLi 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 alMap<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 listList 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 elementString 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 sequenceVTC 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 backwardVTC Academy THSoft Co.,Ltd 21
    • Collections – Getting all items Simple example:List myList = new ArrayList();//we add itemsIterator 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 ComparableVTC 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 objectVTC 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 MembersVTC Academy THSoft Co.,Ltd 26