the collections framework

14
The Collections Framework อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี ([email protected])

Upload: cc-nakhon-pathom-rajabhat-university

Post on 21-Mar-2017

16 views

Category:

Education


0 download

TRANSCRIPT

Page 1: The Collections Framework

The Collections Framework

อาจารยสมเกยรต ชอเหมอน สาขาวชาวศวกรรมซอฟตแวร คณะวทยาศาสตรและเทคโนโลย

([email protected])

Page 2: The Collections Framework

The Collections Framework

• An Introduction to Collections• 2) Collection Interfaces• 3) Old and New Collections• 4) Lists• 5) Sets• 6) Maps• 7) Collection Implementations• 8) Overview of the Collections Framework• 9) An Example Using Un-typed Collections• 10) An Example Using Typed Collections• 11) A Note About Sets• 12) Summary

Page 3: The Collections Framework

An Introduction to Collections

• ระบบซอฟตแวรสวนใหญจ ำเปนตองเกบกลม• อำรเรยเปนวธกำรหนงทใชในกำรจดเกบ • Java สนบสนนคอลเลกชนทแตกตำงกนมำกขนและมควำม

ยดหยนในกำรจดกลม คอลเลกชน (containers) ของ class ในแพลตฟอรม Java

• เพอให “Collections Framework” สอดคลองกบกำรเชอมตอและกำรใชงำน– อนเตอรเฟซทก ำหนดฟงกชนทมอย– กำรน ำไปใชงำน และผลกระทบในกำรด ำเนนงำน

Page 4: The Collections Framework

Collection Interfaces

• แกนหลกของ collections framework เปนอนเตอรเฟซทเรยกวำ “Collection”

• ใชกำรก ำหนด รำยกำรและชดของอนเตอรเฟซเพอใชในกำรจดเกบ

• เพรำะอนเตอรเฟซเหลำน ไมใช class

• เปนกำรก ำหนดตวด ำเนนกำร(Methods) ทไมไดระบรำยละเอยดในกำรด ำเนนกำร (วำง)

• อนเตอรเฟซเพมเตมทส ำคญคอ ‘Map'

Page 5: The Collections Framework

Collection Interfaces

• Collection: สวนใหญใชในกำรจดกลม– List: รายการของวตถ (ซงอาจซ ากน)

– Set: รายการของวตถ (ซงไมซ ากน)

– SortedSet: ชดของวตถทจดอยในล ำดบนอยไปหำมำก

• Map: รำยกำรทไมซ ำกนของ ‘key' ทใชเชอมโยงกบวตถ– SortedMap: วตถทจดเรยงล ำดบของคย

Page 6: The Collections Framework

Old and New Collections

• Java JDK 5.0 'generics' ถกน ำมำใช

• เรำสำมำรถสรำงคอลเลกชนทมเพยงกำรจดเกบวตถของชนดทก ำหนด

Page 7: The Collections Framework

Lists

• Lists เปนชนดทใชกนมำกทสดของคอลเลกชน เปนวธทสะดวกขนในกำรจดกำรขอมล

• โครงสรำงขอมลแบบรำยกำรมควำมยดหยนในกำรปรบขนำดแบบอตโนมต

• ไมจ ำเปนตองเรยงล ำดบและซ ำกนได

Page 8: The Collections Framework

Sets

• Set เปนเหมอน “กระเปำ” ของวตถมำกกวำรำยกำร บนพนฐำนของควำมคดทำงคณตศำสตร– กำรจดกลมของสมำชกทสำมำรถมศนยหนงหรอหลำยรำยกำรท

แตกตำงกน โดยไมสำมำรถระบต ำแหนง

Page 9: The Collections Framework

Maps

• คน 2 คนอยบำนเดยวกน

• ทอยซ ำกนได

Page 10: The Collections Framework

Collection Implementations

• กำรเรยกใช interface ของ Class• Java platform library packages

– ArrayList• เขำถงรำยกำรไดเรว

– LinkedList• อำจจะเรวกวำ ArrayList ไดเลกนอย

– HashSet• เขำถงไดอยำงรวดเรว เมอมกำรจดเรยงล ำดบ

– TreeSet• ชำกวำ HashSet

– HashMap• เขำถงไดอยำงรวดเรว เมอมกำรจดเรยงล ำดบ

– TreeMap• ชำกวำ HashMap

• คณสำมำรถสรำงวตถจำก ArrayList หรอ LinkedList เพอเชอมโยงรำยกำรวตถ

Page 11: The Collections Framework

Overview of the Collections Framework

Page 12: The Collections Framework

An Example Using Un-typed Collections

• Iterator เปน Interface ทใชในกำรอำงถงสมำชกดงขอมลจำก Collection ประเภท Set ตำง ๆ โดยม method ส ำคญ ๆ คอ hasNext , next และ remove

import java.util.List;import java.util.ArrayList;import java.util.Iterator;public class ListDemo{List mAList;/*** Constructor*/public ListDemo (){mAList = new ArrayList();}

public void appendString(String pStr){mAList.add(pStr);}

public void insertString(int pPos, String pStr){mAList.add(pPos, pStr);}

public void deleteString(int pPos){mAList.remove(pPos);}

public void display(){String nextItem;Iterator it = mAList.iterator();while (it.hasNext()){nextItem = (String)it.next();System.out.print(nextItem + " ");}System.out.println();}

Page 13: The Collections Framework

An Example Using Typed Collections

• เหตผล 2 ขอทท ำใหกำรใชงำนคอลเลกชนงำย

• 1) เพรำะรวำชนดของวตถจะถกสงกลบจำกรำยกำรและไมจ ำเปนตองใชตวด ำเนนกำร

• 2) เพรำะ Java 5.0 มกำรวน Loop ในคอลเลกชนทตองกำรแสดงผล

• Generic Types import java.util.List;import java.util.ArrayList;public class ListDemo {private List<String> mAList;public ListDemo (){mAList = new ArrayList<String>();}public void display(){for (String nextItem : mAList){System.out.print(nextItem + " ");}System.out.println();} }

Page 14: The Collections Framework

Summary

• กำรจดกำรกลมของวตถในภำษำ Java นยมใช Collections Framework เพอใหงำยตอกำรจดกำรประเภทของวตถทงทเหมอน หรอตำงกนได

• โดย Collections Framework แบงออกเปน 3 กลมหลก คอSet List และ Hash– Set กลมไมจดล ำดบ– List รำยกำรตำมล ำดบ– Hash ใชตวชไปยงสวนทเกบ

• ท ำใหสำมำรถเขยนโปรแกรมเชงวตถในกำรจดเกบชดของวตถได