ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยNiphon Tansoongnen ได้เปลี่ยน 10 ปีที่แล้ว
1
Lecture2 Array อ.เหมรัศมิ์ วชิรหัตถพงศ์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยบูรพา
2
Problems ถ้าต้องเก็บข้อมูลความถี่ของคะแนน ของนิสิตในแต่ละช่วงคะแนน เช่น 100 คะแนน 1 คน 99 คะแนน 0 คน 98 คะแนน 5 คน … 0 คะแนน 1 คน
3
การใช้ Array อาจจะต้องสร้างตัวแปร counter จำนวน ตัว เพื่อใช้นับจำนวนของแต่ละคะแนน int counter1, counter2, counter3, ....., counter10; int counter11, counter12, counter13, ..., counter20; int counter21, counter22, counter23, ....., counter30; int counter91, counter92, counter93, ..., counter100; int percentage;
4
Array ตัวแปรแบบอาร์เรย์ (Array) หรือตัวแปรแถว ลำดับ หมายถึงตัวแปรซึ่งมีค่าได้หลายค่าโดยใช้ ชื่ออ้างอิงเพียงชื่อเดียว ด้วยการใช้หมายเลข ลำดับเป็นตัวจำแนกความแตกต่างของค่าตัวแปร แต่ละตัว
5
Solving for (int i=0; i<numStudentsInClass; i++) { // รับค่าคะแนนจากผู้ใช้ percentage = input.nextInt(); // เงื่อนไขการนับ switch(percentage) { case 1: counter1++; break; case 2: counter2++; break; case 3: counter3++; break; case 100: counter100++; break; } }
6
Variables รูปแบบ ชื่อตัวแปรอาร์เรย์ = new ชนิดข้อมูล [ขนาดของอาร์เรย์]
ตัวอย่าง int[] scores; scores = new int[50];
7
อีกวิธีในการสร้างอาร์เรย์
1. ประกาศ ให้ตัวแปรชื่อ scores เป็น อาร์เรย์ของ int int[] scores; 2. จองพื้นที่ ใช้คำสั่ง new พร้อมกับระบุว่า ต้องการจองพื้นที่เก็บตัวแปรกี่ตัว scores = new int[3]; 3. กำหนดค่า ตัวแปรแต่ละตัวในอาร์เรย์ scores[0] = 30; scores[1] = 50; scores[2] = 85;
8
ลำดับที่ในอาร์เรย์ int[] sc; sc = new int[5]; หรือ
9
คุณสมบัติของ Array ของ Java
indexed คือสามารถเข้าถึงสมาชิก (Element) แต่ ละตัวได้โดยอาศัย index หรือ ดัชนี ซึ่งจะเป็น ตัวเลข มี 0 เป็นค่าเริ่มต้น fixed size เมื่อสร้าง array แล้ว จะไม่สามารถเพิ่ม หรือ ลบ สมาชิก strongly typed and homogeneous นั่นคือ สมาชิกทุกตัวต้องมีชนิดข้อมูลเดียวกัน bounds-checked ถ้าเราพยายาม access สมาชิกที่ เกินขนาดของ array แล้ว java จะหยุดคำสั่งนั้น
10
ค่าเริ่มต้นของ elements
เมื่อสร้าง array ใหม่ ข้อมูลภายใน array จะ ยังไม่มีข้อมูล ดังนั้นjava จึงกำหนดค่า default เป็นค่าเริ่มต้นของ elements แต่ละ ชนิดดังนี้ ตัวเลข = 0 boolean = false reference = null character = null
11
การกำหนดค่า ใช้เครื่องหมายปีกกาในการกำหนดค่าข้อมูลให้กับ สมาชิกใน Array int[] ages = {34, 12, 45}; double[] heights = {4.5, 23.6, , 78.2, 61.5}; boolean[] tired = {true, false, false, true}; String[] names = {"Bill","Jennifer","Joe"}; char vowels[] = {'a', 'e', 'i', 'o', 'u'};
12
Array of objects การเข้าถึงสมาชิกใน Array แบบ Object จะต้องระมัดระวัง ดังนี้ ตัวอย่างนี้ customers[0] จะมีค่าเป็น null การเรียก customers[0].getName() จึงเกิด error Customer[] customers = new Customer[1000]; System.out.println(customers[0].getName());
13
Array of objects: ที่ถูกต้องจะต้อง Assign ค่าก่อนการเรียกใช้
Customer[] customers = new Customer[1000]; customers[0] = new Customer("Jim"); System.out.println(customers[0].getName());
14
Size of Array เราสามารถทราบขนาดของ array ด้วยการเรียกใช้ ตัวแปร length
ตัวแปร length ของ array ไม่สามารถเปลี่ยนค่าได้ double[] heights = {4.5, 23.6, , 78.2, 61.5}; String[] names = {"Bill","Jennifer","Joe"}; System.out.println(heights.length); // prints 5 System.out.println(names.length); // prints 3 names[1] = null; // erases Jennifer System.out.println(names.length); // still prints 3
15
การวนลูปเพื่อเขียน/อ่านข้อมูล
รูปแบบ for ( ชนิดข้อมูลที่เก็บในอาร์เรย์ ตัวแปร : อาร์เรย์) { // คำสั่งในลูปที่ใช้ ตัวแปร } ตัวอย่าง double[] scores = { 30, 50, 85, 10, 45 }; for( double s : scores) { System.out.println(s);
16
Solving using Array จากปัญหาการหาความถี่คะแนน สามารถใช้ array ได้ดังนี้ int counter[] = new int[101]; int percentage; for (int i=0; i<numStudentsInClass; i++) { // Get the percentage from the user percentage = input.nextInt(); // Now update the appropriate counter counter[percentage]++; }
17
การอ้างเกินขอบเขต public class TestOutOfBound {
public static void main(String[] args) { int[] scores = { 30, 50, 85, 10, 45 }; scores[5] = 10; }
18
Array of String String[] test = new String[3]; test[0] = "Hello";
test[1] = "Java"; test[2] = "World";
19
Array of String String[] test = { "Hello", "Java", "World"};
StringBuffer[] sb = { new StringBuffer("Hello"), new StringBuffer("Java"), new StringBuffer("World") };
20
คลาส Arrays
21
เมธอดในคลาส java.util.Arrays
sort() ใช้เพื่อเรียงลำดับข้อมูลในอาร์เรย์ binarySearch() ใช้ค้นหาข้อมูลในอาร์เรย์ ผลของการค้นหาคืออินเด็กซ์(ตำแหน่ง)ใน อาร์เรย์ ก่อนที่จะค้นหาเราต้องเรียงลำดับข้อมูล เสียก่อน
22
การเรียงจำนวนเต็มโดยใช้คลาส Arrays
java.util.Arrays.sort(score);
23
ตัวอย่างการเรียงลำดับจำนวนเต็ม
int[] score={45,5,87,13,24}; Arrays.sort(score); หรือ java.util.Arrays.sort(score);
24
การเรียงวัตถุโดยใช้คลาส Arrays
{"Jamies", "Amy", "Leo", "James"} import java.util.Arrays; ... Arrays.sort(names); {"Amy", "James", "Jamies", "Leo"}
25
การเรียงวัตถุโดยใช้คลาส Arrays
import java.util.Arrays; public class SortString { public static void main(String[] args) { String[] names = { "Jamies", "Amy", "Leo", "James" }; Arrays.sort(names); System.out.println(Arrays.asList(names)); } Import คลาสอาร์เรย์ พิมพ์ชื่อทั้งหมดในอาร์เรย์
26
การเรียงชื่อภาษาไทย (แบบผิด)
Arrays.sort(names); วัตถุในคลาส String ไม่รู้จักวิธีการเปรียบเทียบคำในภาษาไทย 555
27
การค้นหาโดยใช้คลาส Arrays
เมธอด binarySearch( ) ถ้าพบ จะส่งตำแหน่งที่พบกลับมาให้ ถ้าไม่พบ จะส่งค่าติดลบมาให้
28
ตัวอย่างการค้นหา int[] id = {51, 3, 81, 20, 14}; Arrays.sort(id);
int index = Arrays.binarySearch(id, 51); System.out.println(index);
29
อาร์เรย์สองมิติ ลักษณะเป็นตาราง
30
การสร้างอาร์เรย์สองมิติ
รูปแบบ ชนิดข้อมูล[][] ตัวแปร = { อาร์เรย์แถวแรก, อาร์เรย์แถวที่สอง, ... }; ตัวอย่าง int[][] table = { { 1, 2, 3, 4},{ 5, 6, 7, 8}, { 9, 10, 11, 12}};
31
การระบุตำแหน่งในอาร์เรย์สองมิติ
Index ตัวแรกจะระบุแถวและ Index ตัวที่ สองจะระบุคอลัมน์ รูปแบบ อาร์เรย์[แถว][คอลัมน์] ตัวอย่าง table[1][2]
32
การระบุตำแหน่งของตัวแปรในอาร์เรย์สองมิติ
33
การใช้งานอาร์เรย์สองมิติ
ประกาศ int[][] table; จองพื้นที่ table = new int[3][4]; อ้างถึง table[0][0] = 3; table[0][1] = 5; table[0][2] = 8; table[0][3] = 7;
34
แต่ละแถวของอาร์เรย์สองมิติไม่จำเป็นต้องมีขนาดเท่ากัน
35
ตัวอย่าง int[][] twoD = { { 1, 2, 3}, { 4, 5, 6, 7},
{ 4, 5, 6, 7}, { 8, 9, 10, 11, 12}}; System.out.println(twoD[1][2]);
36
อาร์เรย์สามมิติ
37
การระบุตำแหน่งในอาร์เรย์สามมิติ
Index ตัวแรกจะแทน แผ่นงาน Index ตัวที่ สองจะแทนแถว Index ตัวที่ 3 จะแทน คอลัมน์ รูปแบบ อาร์เรย์[แผ่น][แถว][คอลัมน์]
38
END!
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.