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

Tutorial JAVA

01 install Eclipse 02 intro to programming Eclipse 03 condition 04.loop 05.array 05 2 array cont 06 01 function 06 02 function cont 07 object 08 string 09 constructor 10 01 oop 10 02 oop2 11 exception 12 reading file 13 thread 14 generic 15 01 GUI 15 02 GUI2 15 03.GUI3 16 using WindowBuilder 17 event 18 database management system 19 ER diagram 20 Relational 21 Xampp 22 JDBC 23 MVC 24 SQL

อาร์เรย์(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 ช่อง



บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้

หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor

ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?

สมัครเรียน ONLINE ได้ทันทีที่ https://elearn.expert-programming-tutor.com

หรือติดต่อ

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM

แผนที่ ที่ตั้งของอาคารของเรา

C Article


C++ Article


Java Article


C#.NET Article


VB.NET Article


Python Article


Golang Article


JavaScript Article


Perl Article


Lua Article


Rust Article


Article


Python


Python Numpy


Python Machine Learning



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

Link อื่นๆ

Allow sites to save and read cookie data.
Cookies are small pieces of data created by sites you visit. They make your online experience easier by saving browsing information. We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com

ติดต่อเราได้ที่

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา