สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com

ฟรี TUTORIAL JAVA

ฟรีtutorial JAVA 01 install Eclipse ฟรีtutorial JAVA 02 intro to programming Eclipse ฟรีtutorial JAVA 03 condiotion ฟรีtutorial JAVA 04.loop ฟรีtutorial JAVA 05.array ฟรีtutorial JAVA 05 2 array cont ฟรีtutorial JAVA 06 01 function ฟรีtutorial JAVA 06 02 function cont ฟรีtutorial JAVA 07 object ฟรีtutorial JAVA 08 string ฟรีtutorial JAVA 09 constructor ฟรีtutorial JAVA 10 01 oop ฟรีtutorial JAVA 10 02 oop2 ฟรีtutorial JAVA 11 exception ฟรีtutorial JAVA 12 reading file ฟรีtutorial JAVA 13 thread ฟรีtutorial JAVA 14 generic ฟรีtutorial JAVA 15 01 GUI ฟรีtutorial JAVA 15 02 GUI2 ฟรีtutorial JAVA 15 03.GUI3 ฟรีtutorial JAVA 16 using WindowBuilder ฟรีtutorial JAVA 17 event ฟรีtutorial JAVA 18 database management system ฟรีtutorial JAVA 19 ER diagram ฟรีtutorial JAVA 20 Relational ฟรีtutorial JAVA 21 Xampp ฟรีtutorial JAVA 22 JDBC ฟรีtutorial JAVA 23 MVC ฟรีtutorial JAVA 24 SQL ฟรีtutorial JAVA
ขอย้ำอีกครั้งว่าเนื้อหาที่เห็นอยู่นี้ไม่ใช่เนื้อหาตามปกติที่เราสอนในห้องเรียนเป็นแค่ tutorial ไว้อ่านประกอบเฉยๆ แทบไม่เกี่ยวกันเลย และไม่เกี่ยวกับการบ้านที่ทำครับ ในห้องเรียนเนื้อหาจะเยอะกว่านี้ค่อนข้างมากครับ
ขอบคุณน้องตี้ อย่างสูงสำหรับ Tutorial ดีๆ

ฟรี TUTORIAL DATA STRUCTURE

DATA STRUCTURE

ฟรีtutorial : DATA STRUCTURE : 01 1การเรียงลำดับ(Sorting) ฟรีtutorial : DATA STRUCTURE : 01 2 การเรียงลำดับ2 ฟรีtutorial : DATA STRUCTURE : 02 อาร์เรย์ลิสต์ (Array List) ฟรีtutorial : DATA STRUCTURE : 03 ลิงค์ลิสต์ (Linked List) ฟรีtutorial : DATA STRUCTURE : 04 สแต๊ค ฟรีtutorial : DATA STRUCTURE : 05 1 คิวและไพออริตี้คิว ฟรีtutorial : DATA STRUCTURE : 05 2 คิวและไพออริตี้คิว ฟรีtutorial : DATA STRUCTURE : 06 1 ไบนารีทรี ฟรีtutorial : DATA STRUCTURE : 06 2 ไบนารีเสิร์ชทรี ฟรีtutorial : DATA STRUCTURE : 06 3 ไบนารีเสิร์ชทรี ฟรีtutorial : DATA STRUCTURE : 08 แฮช ฟรีtutorial : DATA STRUCTURE : 09 กราฟ ฟรีtutorial : DATA STRUCTURE :
ขอย้ำอีกครั้งว่าเนื้อหาที่เห็นอยู่นี้ไม่ใช่เนื้อหาตามปกติที่เราสอนในห้องเรียนเป็นแค่ tutorial ไว้อ่านประกอบเฉยๆ แทบไม่เกี่ยวกันเลย และไม่เกี่ยวกับการบ้านที่ทำครับ ในห้องเรียนเนื้อหาจะเยอะกว่านี้ค่อนข้างมากครับ
ขอบคุณน้องตี้ อย่างสูงสำหรับ Tutorial ดีๆ

อาร์เรย์ลิสต์ (Array List)

Array collection

            Collection เป็นที่สำหรับการเก็บข้อมูล โดยทำหน้าที่สำหรับการเก็บเพิ่ม ลบ และการค้นหาข้อมูล และยังสามารถเก็บข้อมูลอะไรก็ได้ซ้ำกันก็ได้ ส่วนอาร์เรย์ (array) เป็นแถวลำดับ คือเป็นการเก็บข้อมูลใส่ไว้เป็นช่องๆ เริ่มตั้งแต่ช่องแรก ดัชนี (index) แรกเริ่มที่ช่องที่0 ไปถึงช่องของขนาดลบด้วยหนึ่ง (size-1) ลบหนึ่งก็เพราะ สมมติว่าเรากำหนดขนาดอาร์เรย์เป็น 10 แต่มันต้องเริ่มต้นดัชนีที่ชอง 0 เพื่อจะให้ได้ 10 ช่องก็ต้องเป็น 0-9 ดังนั้นแล้ว array collection ก็คือที่เก็บข้อมูลโดยเป็นแถวลำดับ

List

            List เป็นรายการ เป็นลักษณะของการเก็บข้อมูลที่มีตัวเลขกำกับข้อมูล ทำให้ข้อมูลมีความเป็นลำดับ มีข้อมูลที่อยู่ก่อนหรืออยู่ข้างหลัง เพราะฉะนั้นเมื่อพูดถึง list จึงต้องมีเมท็อดที่เกี่ยวกับเรื่องของลำดับได้แก่ get และ set โดยเป็นการขอข้อมูลที่อยู่ในลำดับที่ต้องการ และการเปลี่ยนแปรงข้อมูลที่อยู่ในลำดับที่ต้องการ

Arraylist

          เป็น array บวกกับ list หรือก็คือเป็นการเก็บข้อมูลเป็นแถวๆแต่เป็นลำดับแบบชัดเจนมีความหมาย มีเลขกำกับ ไม่ใช่แค่เพิ่ม ลบ หา นอกจากนี้อาร์เรย์ลิสต์เป็นที่รู้จักกันว่าเป็นอาร์เรย์ที่ขยายขนาดเองได้

เมท็อดในอาร์เรย์ลิสต์

void add           สำหรับเพิ่มข้อมูล

void remove     สำหรับลบข้อมูล

ชนิดข้อมูล get   สำหรับขอข้อมูลในลำดับเลขที่ต้องการ

void set            สำหรับเปลี่ยนข้อมูลในลำดับที่ต้องการ

ชนิดตัวแปร size

indexOf

void ensureCapacity

boolean equal

 

รูป 2-1

สร้างคลาส ArrayList

            สร้างตัวแปรให้กับคลาสเป็น private 2 ตัวได้แก่ data และ size โดย data มีไว้สำหรับเก็บข้อมูลตรง Object[] เป็นชนิดของข้อมูลที่เก็บจะเก็บเป็น int เป็นอะไรก็ได้ และตัวแปร size ไว้สำหรับกำหนดขนาดให้กับอาร์เรย์จึงเป็น int

            ในคอนสตรัคเตอร์ของคลาส กำหนดค่าเริ่มต้นให้ data เก็บข้อมูล 1 ตัว คือแค่ 1 ตัวก็พอเพราะว่าอาร์เรย์ลิสต์เป็นอาร์เรย์ที่ขยายขนาดได้ด้วยตัวเอง พอมีข้อมูลตัวถัดไปเข้ามา อาร์เรย์จะขยายขนาดเองไม่ต้องกำหนดพื้นที่ให้เปลือง ตัวแปร size สำหรับเก็บขนาดของอาร์เรย์กำหนดค่าเริ่มต้นเป็น 0

 

รูป2-2

เมท็อด add ensureCapacity

บรรทัดที่ 39 : สร้าง เมท็อด add รับพารามิเตอร์เป็นชนิดข้อมูลที่จะใส่ข้อมูลเข้ามา

บรรทัดที่ 41 : หากไม่ต้องการให้อาร์เรย์เก็บค่า null ให้ throw exception ออกไป

บรรทัดที่ 42 : สำหรับตรวจสอบขนาดของอาร์เรย์ ด้วยเมท็อด ensureCapacity โดยส่งพารามิเตอร์เป็นขนาด size + 1

บรรทัดที่ 43 : เอา e ใส่เข้าไปที่ตัวสุดท้าย ที่ใส่ที่ตัวสุดท้ายเพราะอาร์เรย์ลิสต์เป็นการเก็บข้อมูลที่ต่อท้ายจากข้อมูลเดิมไปเรื่อยๆ

เมท็อด ensureCapacity

บรรทัดที่ 46 : สร้าง เมท็อด ensureCapacity รับอินพุทเป็นขนาดอาร์เรย์เดิม

บรรทัดที่ 48 : ตรวจว่าเลขที่รับเข้ามามากกว่าจำนวนข้อมูลที่มีอยู่หรือไม่ ถ้าใช่ให้ขยายขนาดอาร์เรย์ คือ capacity เป็น size+1 ก็หมายความว่า ถ้า size มีข้อมูลเต็มทุกช่อง ก็มี data.length จะเท่ากับ size ดังนั้นพอ +1 เข้าไป capacity จะมากกว่า data.length อยู่ 1 ก็หมายความว่าหากข้อมูลเต็มอาร์เรย์ให้เพิ่มขนาดของอาร์เรย์ออกไป

บรรทัดที่ 49 : เพิ่มขนาดโดยให้เอาจำนวนข้อมูลทั้งหมดไปคูณ2 เป็นขนาดของอาร์เรย์ใหม่ เก็บไว้ในตัวแปร s

บรรทัดที่ 50 : สร้างอาร์เรย์ใหม่ขนาด s

บรรทัดที่ 51-52 : วนลูปเอาสิ่งที่อยู่ในอาร์เรย์เดิมไปใส่อาร์เรย์ใหม่

บรรทัดที่ 53 : ให้ data ชี้ข้อมูลเดียวกับที่ arr(อาร์เรย์ใหม่) ชี้อยู่

 

เมท็อด indexOf(ชนิดตัวแปร ชื่อตัวแปร) สำหรับการหาตำแหน่งของข้อมูล

            วนลูปจากตัวแรกถึงตัวสุดท้ายดูว่ามี data ช่องที่ i มีค่าเท่ากับข้อมูลที่รับเข้ามาหรือไม่ ถ้าใช่ให้คืนตำแหน่ง i ออกไปเลย แต่ถ้าในอาร์เรยไม่มีข้อมูลให้คืนค่าเป็น -1 (เพราะอาร์เรย์เริ่มที่ 0 ก็เอาเลขที่น้อยกว่า 0)

เมท็อด contains(ชนิดตัวแปร ชื่อตัวแปร) สำหรับถามว่ามีข้อมูลนั้นในอาร์เรย์หรือไม่ โดยตอบเป็นใช่และไม่เท่านั้น

            ก็ให้ดูว่าถ้า หาด้วยเมท็อด indexOf แล้วไม่คืนค่าเป็น -1 ก็ถือว่ามี (เพราะ -1 ของเมท็อด indexOf หมายถึงไม่มีตำแหน่งของข้อมูลนั้น)

 

รูป2-4

บรรทัดที่ 57 : สร้างเมท็อด remove(ชนิดตัวแปร ชื่อตัวแปร) สำหรับลบข้อมูลที่รับเข้ามา

บรรทัดที่ 59 : สร้างตัวแปร i หาว่ามีตำแหน่งของข้อมูลที่รับเข้ามาอยู่ที่ตำแหน่งไหน

บรรทัดที่ 60 : เงื่อนไขคือต้องมีข้อมูล ก็เรียกเมท็อดสำหรับลบข้อมูลในตำแหน่งนั้น

บรรทัดที่ 63 : สร้างเมท็อด remove(ชนิดตัวแปร ชื่อตัวแปร) สำหรับลขข้อมูลในตำแหน่งนั้นๆ

บรรทัดที่ 65-67 : วนลูปจาก i+1 ถึงตัวสุดท้าย สำหรับการเลื่อนข้อมูลมาไปข้างซ้ายหนึ่งตำแหน่ง ซึ่งตัวแรกที่จะไปทับข้อมูลเก่าคือ ข้อมูลที่ i+1 ไปทับข้อมูล i ที่เราต้องการลบ

บรรทัดที่ 69 : ให้ข้อมูลช่องสุดท้ายว่าง

 

รูป2-5

บรรทัดที่ 83 : สร้างเมท็อด get รับข้อมูลเป็นดัชนีเข้ามา

บรรทัดที่ 85-87 : หาว่าเลขที่รับเข้ามาเกินขอบเขตของ size หรือไม่ ถ้าเกินให้แจ้งข้อความ error

บรรทัดที่ 89 : ถ้าอยู่ในช่วงให้คืนค่าว่าข้อมูลของดัชนีนั้นคืออะไร (ในโค๊ดให้เก็บข้อมูลเป็นชนิด Object ดังนั้น ต้อง cast ข้อมูลเป็น int ให้เหมือนกับ input)

บรรทัดที่ 92 : สร้างเมท็อด set สำหรับกำหนเข้อมูลในดัชนีนั้นๆ

บรรทัดที่ 93 : ให้ข้อมูล data ช่องที่ i เป็น e

 



แผนผังการเรียนเขียนโปรแกรม

>