1 / 33

Java Array and String Week #3 Jarungjit Parnjai

Java Array and String Week #3 Jarungjit Parnjai. Object Oriented Programming. Java Array. Java Array. แอร์เรย์ (Array) หมายถึง กลุ่ม (group) ของข้อมูลที่เป็นประเภทเดียวกัน Array ในภาษาจาวา ไม่ใช่เป็นเพียงเนื้อที่ในหน่วยความจำที่จองไว้สำหรับประเภทข้อมูล แต่เป็นวัตถุ ( Object )

imala
Download Presentation

Java Array and String Week #3 Jarungjit Parnjai

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Array and StringWeek #3Jarungjit Parnjai Object Oriented Programming

  2. Java Array

  3. Java Array • แอร์เรย์ (Array) • หมายถึง กลุ่ม (group) ของข้อมูลที่เป็นประเภทเดียวกัน • Array ในภาษาจาวา • ไม่ใช่เป็นเพียงเนื้อที่ในหน่วยความจำที่จองไว้สำหรับประเภทข้อมูล แต่เป็นวัตถุ (Object) • เป็นกลุ่ม (group) ของข้อมูลที่เป็นประเภทเดียวกัน (ทั้งประเภท Primitive Data Type และ Reference Type)

  4. Element Index A ‘a’ DeclareAas an Array of Character xxx aaa xxx ‘b’ yyy Length=3 Memory Address ‘c’ zzz Memory Address [0] [1] [2] Examples of Java Array

  5. Declaring Array in Java • การประกาศ Array ในภาษาจาวา ทำได้โดย type[ ] variable; หรือ type variable[ ]; • ประกาศตัวแปร Array เพื่อเป็นตัวอ้างอิงไปยัง Array • เป็นการจองเนื้อที่สำหรับตัวแปรอ้างอิง (Reference Variable) • ไม่ระบุขนาดของ Array • ค่า Default value เป็น null • Array เป็น Object???

  6. Examples of Declaring Array • ตัวอย่าง การประกาศ Array int[ ] i; หรือ int i[ ]; int[ ] i,j; หรือ int i[ ], j[ ]; double[ ] d; หรือ double d[ ]; char[ ] A; หรือ char A[ ]; BankAccount[ ] ba; หรือ BankAccount ba[ ]; Point[ ] pt; หรือ Point pt[ ];

  7. 1 char[ ] c; 2 c = new char[26]; 3 for (int i=0; i<26; i++) { 4 c[i] = (char)('a'+i); 5 } After Line 1 c XXX YYY Memory Address null YYY DeclareCas an Array of Character Creating Array in Java • ตัวอย่างการสร้าง Array ของ Primitive Data Type

  8. 1char[ ] c; 2 c = new char[26]; 3 for (int i=0; i<26; i++) { 4 c[i] = (char)('a'+i); 5 } After Line 2 Executing Line 2 Element Element Index Index C C YYY YYY aaa aaa XXX XXX aaa aaa YYY YYY bbb bbb Memory Address Memory Address YYY YYY ccc ccc Executing Line 2 null null Length=26 Length=26 C YYY YYY YYY YYY [0] [0] XXX YYY [25] [25] zzz zzz DeclareCas an Array of Character DeclareCas an Array of Character [1] [1] Memory Address Memory Address Memory Address [2] [2] null YYY DeclareCas an Array of Character Creating Array in Java • ตัวอย่างการสร้าง Array ของ Primitive Data Type

  9. 1char[ ] c; 2 c = new char[26]; 3for (int i=0; i<26; i++) { 4 c[i] = (char)('a'+i); 5 } After Line 3 and 4 Executing Line 3 and 4 Element Element Index Index C C ‘a’ ‘a’ aaa aaa XXX XXX aaa aaa [0] [0] ‘b’ YYY bbb bbb Memory Address Memory Address [1] [1] ‘c’ YYY ccc ccc null null Length=26 Length=26 [2] [2] YYY YYY ‘z’ YYY [25] [25] zzz zzz DeclareCas an Array of Character DeclareCas an Array of Character Memory Address Memory Address Creating Array in Java • ตัวอย่างการสร้าง Array ของ Primitive Data Type

  10. 1char[ ] c; 2 c = new char[26]; 3 for (int i=0; i<26; i++) { 4 c[i] = (char)('a'+i); 5 } After Line 5 Element Index C ‘a’ aaa XXX aaa ‘b’ bbb Memory Address ‘c’ ccc null Length=26 YYY ‘z’ [0] [25] zzz DeclareCas an Array of Character [1] Memory Address [2] Creating Array in Java • ตัวอย่างการสร้าง Array ของ Primitive Data Type

  11. Array Bounds Initializing an Array • การสร้าง Array โดยให้ค่าเริ่มต้น • BankAccount account[ ]; • account = new BankAccount[3]; • account[0] = new BankAccount(1000); • account[1] = new BankAccount(0); • account[2] = new BankAccount (23052); • int data[ ]; • data = new int[5]; • for (int i=10; I < data.length; i--) • data[i] = i % 2; • int a[ ] = { 2, 4, 6, 8, 10 };

  12. Point Point - xPos : int - yPos : int xPos yPos + Point(initX : int, initY: int) + getX( ) : int + getY( ) : int + setPostion(X : int, Y: int) getX() getY() setPostion(x, y) Class Diagram Object Diagram A Point Class Class Diagram MyDate.java

  13. 1 Point[ ] pt; 2 pt = new Point[10]; 3 for (int i=0; i<pt.length; i++) { 4 pt[i] = (Point)('a'+i); 5 } Creating Array in Java • ตัวอย่างการสร้าง Array ของ Primitive Data Type After Line 1 pt XXX YYY Memory Address null YYY Declareptas an Array of Point Object

  14. 1Point[ ] pt; 2 pt = new Point[10]; 3 for (int i=0; i<pt.length; i++) { 4 pt[i] = new Point(i, i+1); 5 } Executing Line 2 After Line 2 Element Element Index Index pt pt YYY YYY aaa aaa [0] [0] XXX XXX aaa aaa YYY YYY bbb bbb [1] [1] Memory Address Memory Address YYY YYY ccc ccc [2] [2] null null Length=10 Length=10 YYY YYY YYY YYY [9] [9] zzz zzz Declareptas an Array of Character Declareptas an Array of Character Memory Address Memory Address Creating Array in Java • ตัวอย่างการสร้าง Array ของ Primitive Data Type

  15. 1Point[ ] pt; 2 pt = new Point[10]; 3 for (int i=0; i<pt.length; i++) { 4 pt[i] = new Point(i, i+1); 5 } After Line 5 After Line 5 Element Element Index Index Point 0 pt pt X 1 (0,1) (0,1) aaa aaa Y [0] [0] XXX XXX aaa aaa (1,2) (1,2) bbb bbb [1] [1] Memory Address Memory Address (2,3) (2,3) ccc ccc [2] [2] null null Length = 10 Length = 10 YYY YYY (9,10) (9,10) [9] [9] zzz zzz Declareptas an Array of Character Declareptas an Array of Character Memory Address Memory Address Creating Array in Java • ตัวอย่างการสร้าง Array ของ Primitive Data Type

  16. 1Line[ ] line; 2 line = new Line[3]; 3 for (int i=0; i<line.length; i++) { 4 Point pt1 = new Point(i); 5 Point pt2 = new Point(i+1); 6 line[i] = new Line(pt1,pt2); 7 } Line - startPt : Point - endPt : Point + Line(start :Point, start : Point) + getStartPoint ( ) : Point + getEndPoint( ) : Point + setStartPoint (pt :Point) + setEndPoint (pt :Point) Class Diagram A Line class • ตัวอย่างการสร้าง Array ของคลาส Line Class Diagram MyDate.java

  17. 1intmyArray [ ] = new int[4]; 2 myArray = new int[6]; 1 intmyArray [ ] = new int[4]; 2myArray = new int[6]; 1intmyArray [ ] = new int[4]; 2 myArray = new int[6]; myArray myArray myArray null null null null null aaa aaa aaa [0] [0] [0] jjj jjj [0] [0] aaa jjj aaa null null null null null bbb bbb bbb kkk kkk [1] [1] [1] [1] [1] null null null XXX XXX XXX null null ccc ccc ccc mmm mmm [2] [2] [2] [2] [2] null null null null null ddd ddd ddd [3] [3] [3] nnn nnn [3] [3] null null ooo ooo [4] [4] null null Executing Line 2 After Line 2 After Line 1 ppp ppp [5] [5] Array Resizing in Java • ในภาษาจาวา • ไม่สามารถ resize Array ได้ • แต่สามารถตัวแปรอ้างอิงเดิมเก็บค่าอ้างอิงไปยัง Array ใหม่ได้ • ตัวอย่าง

  18. Copying Array in Java Origin Target Length of copy elements hold [0] [0] 1 10 aaa jjj aaa jjj 2 9 [1] [1] bbb kkk XXX XXX 3 8 [2] [2] ccc mmm 4 7 ddd [3] nnn [3] 6 [4] ooo 5 After Line 2 [5] ppp • ในภาษาจาวา ทำได้โดย • เรียกใช้เมทธอดSystem.arrraycopy( ); • ตัวอย่าง 1intelements [ ] = { 1,2,3,4 }; // original array 2inthold [ ] = { 10,9,8,7,6,5 }; // new larger array 3 System.arraycopy(elements, 0, hold, 0, elements.length);

  19. 1intelements [ ] = { 1,2,3,4 }; // original array 2 inthold [ ] = { 10,9,8,7,6,5 }; // new larger array 3 System.arraycopy(elements, 0, hold, 0, elements.length); elements elements hold hold 1 1 10 1 aaa aaa jjj jjj aaa aaa jjj jjj 2 2 9 2 bbb bbb kkk kkk [0] [0] [0] [0] XXX XXX XXX XXX 3 3 8 3 ccc ccc mmm mmm [1] [1] [1] [1] 4 4 7 4 ddd ddd [3] [3] nnn nnn [3] [3] [2] [2] [2] [2] 6 6 [4] [4] ooo ooo 5 5 Executing Line 3 After Line 3 [5] [5] ppp ppp Copying Array in Java • ตัวอย่าง

  20. int[][] twoDim; twoDim [ 0] = new int[2]; // row#0, 2 cols twoDim [ 1] = new int[4]; // row#1, 4 cols twoDim [ 2] = new int[6]; // row#2, 6 cols twoDim [ 3] = new int[8]; // row#3, 8 cols intelements [ ][ ] = new int[4][5]; // 4 rows, 5 cols each Multidimensional Array in Java • Multidimensional Array ในภาษาจาวา • Array ที่มีจำนวนแถว และจำนวนคอลัมน์ ไม่คงที่เท่ากัน • Array ที่มีจำนวนแถว และ จำนวนคอลัมน์ คงที่เท่ากัน

  21. Initializing Multidimensional Array • การสร้าง Multidimensional Array โดยให้ค่าเริ่มต้น • int[ ][ ] array_2d = { • { 2, 4, 6, 8, 10 }, • { 0, 1}, • {20, 21, 22} • }; • long elements[ ][ ]; • elements = new long[2][3]; • for (int i=0; i<elements.length; i++) • for (int j=0; j<elements[i].length; j++) • elements[i][j] = 0L;

  22. Java String

  23. Java String • สายอักษร (String) ในภาษาจาวา • ไม่ใช่เป็นเพียงเนื้อที่ในหน่วยความจำที่จองไว้สำหรับประเภทข้อมูล แต่เป็นวัตถุ (Object) • ตัวแปร String ในภาษาจาวา • เก็บค่าอ้างอิงของ String Object • เมื่อมีการอ้างอิงค่าไปยัง String Object แล้ว จะไม่สามารถเปลี่ยนแปลงค่าใน String Object ได้โดยตรง แต่สามารถให้ค่าอ้างอิงใหม่ได้ String message = new String("Hello"); หรือ String message = "Hello";

  24. 1 String empty = new String(""); 2 String message = "Hello"; 3 String repeat = message; empty "" aaa stored at aaa stored at xxx bbb String "" String "" aaa xxx After Line 1 yyy stored at aaa zzz Conceptual View Memory Address View String Declaration (1) • การประกาศตัวแปร String ในภาษาจาวา

  25. 1 String empty = new String(""); 2 String message = "Hello"; 3 String repeat = message; empty stored at aaa stored at xxx empty String "" "" "" aaa aaa String "" stored at aaa stored at xxx " Hello" bbb bbb stored at aaa After Line 2 String "" String "" aaa aaa xxx xxx message After Line 1 bbb yyy yyy stored at yyy stored at bbb stored at aaa String ”Hello" zzz zzz String ”Hello" stored at bbb Conceptual View Memory Address View Memory Address View Conceptual View String Declaration (2) • การประกาศตัวแปร String ในภาษาจาวา

  26. 1 String empty = new String(""); 2 String message = "Hello"; 3 String repeat = message; empty empty stored at aaa stored at aaa stored at xxx stored at xxx String "" "" aaa String "" "" aaa String "" String "" " Hello" bbb " Hello" bbb stored at aaa message After Line 3 stored at aaa After Line 2 aaa xxx aaa xxx message stored at yyy bbb bbb yyy String ”Hello" yyy stored at bbb stored at yyy stored at bbb String ”Hello" bbb Repeat zzz String ”Hello" zzz String ”Hello" stored at bbb stored at bbb stored at zzz Memory Address View Memory Address View Conceptual View Conceptual View String Declaration (3) • การประกาศตัวแปร String ในภาษาจาวา

  27. The “String” Class • String Class • ค่าใน String Object ไม่สามารถเปลี่ยนแปลงได้ แต่สามารถให้ค่าอ้างอิงจากตัวแปร String ใหม่ได้ • Methods ของ String Class • Create New String concat, replace, subString, toLowerCase, toUpperCase • Search endswith, startswith, indexOf, lastIndexOf • Comparison equals, equalsIgnoreCase, CompareTo • others charAt, length

  28. String Comparison • การเปรียบเทียบ String ในภาษาจาวา • เปรียบเทียบค่าใน String Object ว่าเท่ากันหรือไม่ • ใช้เมทธอด boolean equals(String s) • เปรียบเทียบว่าตัวแปร String อ้างอิงถึง String Object เดียวกันหรือไม่ • ใช้โอเปอร์เรเตอร์ (Operator) “==” • เปรียบเทียบค่าใน String Object เรียงตามลำดับตัวอักษร • ใช้เมทธอดint compareTo(String s) • return ค่า 0 เมื่อเป็นค่าเดียวกัน, ค่าจำนวนเต็มบวกเมื่อ String Object นี้มากกว่า s และ ค่าจำนวนเต็มลบ เมื่อ String Object นี้น้อยกว่า s

  29. String greeting = new String("Hello"); String message = "Hello"; if (greeting.equals(message)) { System.out.println("equal content!"); } else { System.out.println("content NOT equal!"); } greeting stored at aaa stored at xxx String "Hello" "Hello" aaa String "Hello" "Hello" bbb stored at aaa aaa xxx message bbb yyy stored at yyy stored at bbb String "Hello" zzz String "Hello" stored at bbb Memory Address View Conceptual View Comparing String Contents • ตัวอย่าง

  30. greeting stored at aaa stored at xxx String "Hello" "Hello" aaa String "Hello" "Hello" bbb stored at aaa aaa xxx message bbb yyy stored at yyy stored at bbb String "Hello" zzz String "Hello" stored at bbb Memory Address View Conceptual View Comparing String Reference • ตัวอย่าง String greeting = new String("Hello"); String message = "Hello"; if (greeting ==message) { System.out.println("equal reference!"); } else { System.out.println(”reference NOT equal!"); }

  31. String greeting = new String("Hello"); String message = ”World"; System.out.println(greeting.compareTo(message)); Comparing String Lexicographical Order • การเปรียบเทียบค่า String ตามลำดับตัวอักษรใช้เมทธอด int compareTo(String s) • return ค่า 0 เมื่อเป็นค่าเดียวกัน • return ค่าจำนวนเต็มบวกเมื่อ String Object นี้มากกว่า s • return ค่าจำนวนเต็มลบ เมื่อ String Object นี้น้อยกว่า s

  32. String Concatenation • การนำ String มาเชื่อมต่อกัน • ใช้โอเปอร์เรเตอร์ Concatenate (+) • แต่ไม่สามารถเปรียบเทียบ String โดยใช้โอเปอร์เรเตอร์แบบ Relational (>, <, >=, <=) และโอเปอร์เรเตอร์แบบ Equality ( ==, !=) ได้ String greetings = new String("Hello”); int ThisYear = 2001; String name = " World " + 2001; String message = greetings + name; • หมายเหตุ • ใช้โอเปอร์เตอร์ (+) กับ String ได้เมื่อมีพจน์ใดพจน์หนึ่งเป็น String

  33. Summary • รู้จัก Java Array • รู้จัก Java String

More Related