the collections framework

Post on 21-Mar-2017

16 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

The Collections Framework

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

(tkorinp@hotmail.com)

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

An Introduction to Collections

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

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

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

Collection Interfaces

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

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

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

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

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

Collection Interfaces

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

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

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

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

Old and New Collections

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

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

Lists

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

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

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

Sets

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

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

Maps

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

• ทอยซ ำกนได

Collection Implementations

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

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

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

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

– TreeSet• ชำกวำ HashSet

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

– TreeMap• ชำกวำ HashMap

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

Overview of 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();}

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();} }

Summary

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

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

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

top related