Collections and generic class

748 views

Published on

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

vtc academyc, thsoft co.,ltd

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
748
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Collections and generic class

  1. 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. 2. Introduction  Course Objectives  Organization of the BookVTC Academy THSoft Co.,Ltd 2
  3. 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. 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 projectsVTC Academy THSoft Co.,Ltd 4
  5. 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 CollectionsVTC Academy THSoft Co.,Ltd 5
  6. 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. 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. 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 codeVTC Academy THSoft Co.,Ltd 8
  9. 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 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
  10. 10. 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
  11. 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 functionalityVTC Academy THSoft Co.,Ltd 11
  12. 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 ObjectVTC Academy THSoft Co.,Ltd 12
  13. 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 pairsVTC Academy THSoft Co.,Ltd 13
  14. 14. Java CollectionsVTC Academy THSoft Co.,Ltd 14
  15. 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, SortedSetVTC Academy THSoft Co.,Ltd 15
  16. 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 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
  17. 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. 18. 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
  19. 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 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
  20. 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 sequenceVTC Academy THSoft Co.,Ltd 20
  21. 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 backwardVTC Academy THSoft Co.,Ltd 21
  22. 22. 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
  23. 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 ComparableVTC Academy THSoft Co.,Ltd 23
  24. 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 objectVTC Academy THSoft Co.,Ltd 24
  25. 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. 26. 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

×