สมัครเรียนโทร. 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)

            อาร์เรย์ (หนังสือบางเล่นใช้คำว่าแถวลำดับ ตัวแปรชุด) ช่วยในการเก็บข้อมูลจำนวนมากโดยไม่ต้องประกาศตัวแปรเยอะๆ เช่น ต้องการเก็บข้อมูล 100 ข้อมูลก็ไม่ต้องประกาศตัวแปร 50 ตัวเพราะมันเสียเวลา ประกาศอาร์เรย์เดียวขนาด 100 ช่อง การใช้อาร์เรย์ยังไปได้ด้วยดีกับการใช้ลูป เพราะอาร์เรย์จะเก็บข้อมูลประเภทเดียวกัน เช่น เก็บ int ก็จะเก็บ int ทั้งอาร์เรย์ทำให้ใช้ลูปมาเก็บใส่ได้ดี การใช้งานอาร์เรย์ได้แก่ การเก็บข้อมูล การหาข้อมูลและการเรียงลำดับเป็นสำคัญ

อาร์เรย์

อาร์เรย์จะถูกแบ่งออกเป็นหลายๆช่อง โดยมีสิ่งที่เรียกว่า index เป็นตัวระบุว่าข้อมูลนั้นๆอยู่ช่องไหน โดยในภาษาจาวา อาร์เรย์ช่องแรกจะเริ่มต้นที่ index[0] หมายความว่า ถ้าประกาศอาร์เรย์ 100 ช่อง indexหรือช่องสุดท้ายจะเป็น 99

 

 

จากในรูปจะเห็นว่าเราเก็บข้อมูลเป็นจำนวนเต็ม เลข 1 เก็บไว้ใน อาร์เรย์ช่องแรก index[0] และ 16 เก็บไว้ที่ index[4]

 

 


รูป 5-1

 

 

 

จะเห็นว่าว่าอาร์เรย์ข้างบนมี 5 ช่อง แต่มี index[0-4] ถ้าเผลอเก็บข้อมูลไว้ที่ index[5] จะ error

 


รูป 5-2

เป็นการประกาศอาร์เรย์ 3 ช่อง ดังนั้น index จะมีเพียงแค่ index[0]  index[1]  index[2] พอไปเก็บไว้ที่index[3] ก็จะ เกิด error ต้องระวังไว้ว่าช่องแรกเริ่มที่ 0 เสมอ

 


รูป 5-3

วิธีการประกาศตัวแปรชนิดอาร์เรย์ 1 มิติ

ชนิดตัวแปร [ ] ชื่อตัวแปร;
ชนิดตัวแปร ชื่อตัวแปร[ ];

เช่น int a [ ];                  หรือ      int [ ]a;

 

            อาร์เรย์เป็นอ็อปเจ็ค เวลาสร้างอาร์เรย์ใช้จริงๆต้องใช้คีย์เวิร์ด new คือข้างบนแค่ประกาศเหมือนประกาศตัวแปรทั่วไป แต่การ new คือจะเราอาร์เรย์มาใช้ก็เหมือนการจะให้ค่ากับตัวแปร

 

ชื่อตัวแปร = new ชนิดตัวแปร[ ขนาดของอาร์เรย์ที่อยากได้];

a = new int [5];

แต่จริงๆคือประกาศตัวแปรและเรียกใช้อาร์เรย์ในบรรทัดเดียวกันก็ได้

int a[ ] = new int [5];

อันนี้เท่ากับว่าประกาศตัวแปร x เก็บข้อมูลชนิด int ใส่ อาร์เรย์ 1 มิติ

 


รูป 5-4

 

 

            เมื่อเรา ประกาศตัวแปรa[ ] เราก็ได้กล่อง a ขึ้นมาแต่พอเรา new ก็จะได้บล็อกแถวข้างๆออกมา ต้องมีทั้งกล่องและบล็อกที่จะเอากล่องไปใส่ถึงจะสามารถใช้อาร์เรย์ได้สมบูรณ์

การอ้างอิงอาร์เรย์เดียวกัน

            ในอาร์เรย์ตัวแปรอาร์เรย์สามารถชี้ไปที่อาร์เรย์เดียวกันได้ โดยใช้เครื่องหมาย = กล่าวคือเครื่องหมาย = ในจาวามีได้ 2 ความหมาย คือ

1.ตัวแปรธรรมดา = คือเอาค่าทางขวาไปใส่ทางซ้าย เช่น x = 3; คือเอา 3 ไปใส่ x

2.ตัวแปรอาร์เรย์  = คือตัวทางซ้ายกับตัวทางขวา ชี้ไปที่ อาร์เรย์เดียวกัน เช่น

 

int [ ]d = new int [5];

int [ ]a = d;

 


รูป 5-5

 

            สร้างอาร์เรย์ d ขึ้นมา 5 ช่อง d ก็จะชี้ไปที่อาร์เรย์ 5ช่อง พอสร้าง a ขึ้นมาก็ให้ชี้ไปที่เดียวกับที่ d ชี้อยู่ โดยใช้ เครื่องหมาย =

กำจัดขยะด้วย Garbage collector

            ในจาวาอาร์เรย์ที่ไม่มีตัวแปรอ้างอิงจะถูกกำจัดเพื่อให้ประหยัดหน่วยความจำ

 

int a = new int[6];

a = new int[2];

 


รูป 5-6

 

ตัวอย่างการสร้าง เพิ่ม และใช้งานอาร์เรย์

ให้รับข้อมูลใส่อาร์เรย์10ตัวถามว่าในอาร์เรย์มีเลขคู่หรือไม่มี

 


รูป 5-7

 

บรรทัดที่ 8 : ใช้ Scanner เพื่อรับข้อมูลจากทางแป้นพิมพ์(Scanner ก็ใช้วิธีการ new เช่นเดียวกับ array)

บรรทัดที่ 9 : ประกาศตัวแปร x เป็นอาร์เรย์ โดยกำหนดขนาดอาร์เรย์เป็น 10 ช่อง

บรรทัดที่ 10 : จากนั้นวนลูป for โดยมีเงื่อนไขคือ i<x.length โดย .length หมายความว่า ขนาดของ กล่าวคือ

        ตราบเท่าที่ i ยังไม่เกินขนาดของอาร์เรย์ x ให้ทำการรับข้อมูลต่อ

บรรทัดที่ 13 : ให้x[ ] เก็บข้อมูลจากการวนลูปของ i

บรรทัดที่ 15 : ประกาศตัวแปร count สำหรับใช้นับว่ามีจำนวนที่เป็นเลขคู่หรือไม่

บรรทัดที่ 16 : ใช้ลูปวน for วนลูปเท่าขนาดอาร์เรย์อีกครั้ง

 

บรรทัดที่ 18 : ใช้เงื่อนไขเพื่อตรวจสอบว่าในอาร์เรย์มีจำนวนที่หารด้วย 2 ลงตัวหรือไม่

บรรทัดที่ 20-21 : หากมีตัวที่เป็นไปตามเงื่อนไขของบรรทัดที่ 18 ให้ทำ count นับ 1 และทำการ break; ออก

จากลูปเลยเพราะมีอย่างน้อย 1 ตัวเป็นเลขคู่ก็หมายความว่า อาร์เรย์นี้มีเลขคู่

บรรทัดที่ 24 - 31 : สร้างเงื่อนไขอีก ถ้า count มากกว่า 0 ให้ แสดงผลว่ามีเลขคู่ แต่ถ้าไม่มีให้บอกไม่มี

ได้ผลลัพธ์ดังนี้

 


รูป 5-8

การหาค่ามากสุด

 


รูป 5-9

            โปรแกรมนี้ต้องการทำให้โปรแกรมเรียงลำดับของอาร์เรย์จากน้อยไปมากและแสดงผลออกทางหน้าจอ

บรรทัดที่ 9 : ประกาศอาร์เรย์ x ขนาด 10 ช่อง

บรรทัดที่ 11-15: ทำการวนลูปโดยให้ลูปมีขนาดเท่ากับอาร์เรย์ จากนั้นทำการ random ตัวเลข0-50 มาใส่ใน

อาร์เรย์ จากนั้นแสดงผลออกทางหน้าจอ

บรรทัดที่ 17-19 : จากนั้นจะทำการเปรียบเทียบค่าในอาร์เรย์ทีละสองตัวเพื่อเรียงลำดับโดยให้ลูปแรกมีขนาด

เท่ากับอาร์เรย์ที่เราประกาศ ส่วนลูปที่ 2 ลดขนาดลง 1 เพราะไม่ต้องทำการเปรียบเทียบกับตัวเอง

บรรทัดที่ 21 :สร้างเงื่อนไง ถ้า ตัวก่อนหน้า x[i] มากกว่า ตัวข้างหลัง x[i+1]

บรรทัดที่ 23 : สร้างตัวแปร temp มาเก็บค่า x[i]

บรรทัดที่ 24 : เอาค่า x[i+1] มาใส่ x[i]

บรรทัดที่ 25 : จากนั้นเอา temp ที่เก็บค่าเดิมของ x[i] มาใส่ที่ x[i+1]

            พูดง่ายๆก็คือถ้าอาร์เรย์มันเป็นแถวบล็อกยาวๆ แล้ว x[i] มันมากกว่า x[i+1] ก็ให้สลับค่ากัน ค่าที่มากกว่าจะได้มาอยู่ฝั่งขวาแล้วพอวนลูปรอบต่อไปค่ามากกว่าก็จะดูว่าตัวเองมากกว่าตัวถัดไปหรือเปล่าถ้าใช่ก็สลับอีก สลับจนตัวมากกว่าสุดไปอยู่ขวาสุด

บรรทัดที่ 31 : ให้แสดงผลออกทางหน้าจอ

บรรทัดที่ 31 : ใช้เมท็อด Arrays.toString(int []) เพื่อช่วยพิมพ์ข้อความออกมาเป็นรูปแบบอาร์เรย์สวยๆ

ผลลัพธ์ที่ได้หลังจากสลับกันจนเรียบร้อยแล้ว

 


รูป 5-10

อาร์เรย์ 2 มิติ

            เนื่องจากอาร์เรย์มีลักษณะเป็นแถวๆจึงสามารถสร้างแถวได้มากกว่า 1 กล่าวคือสร้าง 2แถวติดกันก็ได้

วิธีการสร้างอาร์เรย์ 2มิติ ก็เพิ่ม [ ] มาอีก 1 อัน

int a[ ][ ]= new int [5][5];

            แบบนี้ก็จะได้ตารางอาร์เรย์แบบ 5x5 ช่อง

 



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