ข้อมูลองค์ความรู้โดย
ณัฐพล วัฒนวิภัทรเจริญ
ตำแหน่ง IT

Java ตอนที่ 6 คอลเลคชัน

ประเภททางด้าน IT หลัก :   Development & Integration
ประเภททางด้าน IT ย่อย :   Java
  ลงข้อมูลเมื่อ 10:39:33 20/03/2013
  Page View (2896) แบ่งปัน

อาร์เรย์ เป็นแนวคิดการประกาศตัวแปรครั้งเดียว แต่มีสมาชิกย่อยได้หลายตัว ต่อมาได้พัฒนาภาษาจาวาให้ใช้งานคอลเลกชัน ซึ่งมีความซับซ้อนมากกว่าอาร์เรย์ จึงนำไปใช้งานได้ตามที่ต้องการสะดวกยิ่งขึ้น

6.1 อาร์เรย์ (Array)

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

กรณีที่ 1                  int s1[] = new int[10000];  ใช้พื้นที่ 40,016 Bytes

กรณีที่ 2                  int s2[] = new int[10000];  ถ้าประกาศทั้ง s1 และ s2 จะใช้พื้นที่ 80,032 Bytes

กรณีที่ 3                  int s3[] = new int[20000];  ใช้พื้นที่ 80,016 Bytes

กรณีที่ 4                  long s4[] = new long[20000]; ใช้พื้นที่ 160,016 Bytes

ตัวอย่างข้อมูลในอาร์เรย์

0

1

2

3

4

5

abcd

def

ghijk

jkl

xyz

eee

 

ตัวอย่าง 6.1 ประกาศตัวแปรอาร์เรย์ กำหนดค่า และเรียกมาแสดงผล

int x[] = {4,18,12};

System.out.println("Amount of array = " + x.length);

for (int i = 0; i < x.length; i++) {

   System.out.println("element "+i+" = "+x[i]);

}

ตัวอย่าง 6.2 การจัดเรียงข้อมูลในอาร์เรย์

int a[] = {5,-1,2};

java.util.Arrays.sort(a);

for (int i = 0; i < a.length; i++) System.out.print(a[i]); // - 125

String b[] = {"aa","Za","12"};

java.util.Arrays.sort(b);

for (int i = 0; i < b.length; i++) System.out.print(b[i]); // 12Zaaa

ตัวอย่าง 6.3 ตรวจสอบหน่วยความจำเมื่อใช้อาร์เรย์

Runtime r = Runtime.getRuntime();

r.gc();

System.out.println(r.totalMemory()); // 5177344

long f1 = r.freeMemory(); // can not use int

int s[] = new int[10000];

r.gc();

try{

  Thread.currentThread().sleep(1000); //sleep for 1000 ms

} catch(Exception e) { }

  System.out.println(f1 - r.freeMemory()); // 40016

}

ตัวอย่าง 6.4 จัดการกับอาร์เรย์ 2 มิติแบบคงที่

String a[][] = new String[2][3];

a[0][0] = "101";

a[0][1] = "102";

a[0][2] = "103";

int i = 0;

a[1][i++] = "tom";  // 1,0

a[1][i++] = "dang"; // 1,1

a[1][i++] = "boy";  // 1,2

for (i = 0; i < a[0].length; i++) {

  System.out.println("element of 0,"+i+" = "+a[0][i]);

}

for (i = 0; i < a[1].length; i++) {

  System.out.println("element of 1,"+i+" = "+a[1][i]);

}

 

ศึกษาข้อมูลเพิ่มเติมได้จาก

- http://www.csalpha.msu.ac.th/potchara/moodle/course/view.php?id=2

 

6.2 ความหมายของคอลเลคชัน (Collection Meaning)

                คอลเลคชั่น คือ ชุดของอินเตอร์เฟส และคลาสในแพคเกจ java.util

                คอลเลคชั่นคลาส คือ คลาสที่อยู่ในแพกเกจ java.util ซึ่งประกอบขึ้นจากสมาชิกย่อยที่มีตัวชี้ (Pointer) ชี้ไปยังวัตถุ (Object) คอลเลคชันมีหลายประเภท เช่น เซตคอลเลคชัน (Set Collection) ลิสต์คอลเลคชัน (List Collection) แมพคอลเลคชัน (Map Collection) อิทเทอร์เรเตอร์คลาส (Iterator Class) เวกเตอร์คลาส (Vector Class)

ศึกษาข้อมูลเพิ่มเติมได้จาก

- http://www.cp.eng.chula.ac.th/~vishnu/datastructure/Java%20Collection%20Framework.ppt

                - http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html

ตัวอย่าง 6.5 การใช้ SortedSet และ TreeSet

import java.util.*;

class x {

public static void main (String aa[]) {

   SortedSet c = new TreeSet();

   c.add(new Integer(30));

   c.add(new Integer(10));

   c.add(new Integer(20));

   c.add(new Integer(50));

   c.add(new Integer(40));

   Iterator itr = c.iterator();

   while(itr.hasNext()) System.out.print(itr.next()); // 1020304050

 }

 }

ที่มาจาก www.thaiall.com



องค์ความรู้ที่มีผู้อ่านมากสุด
Java ตอนที่ 3 รับข้อมูลทางแป้นพิมพ์ และแสดงผล
การติดต่อกับผู้ใช้เป็นความสามารถของภาษาคอมพิวเตอร์ที่จะเปิดให้ผู้ใช้เข้าควบคุมการทำงานของเครื่องคอมพิวเตอร์ ซึ่งการติดต่อของอุปกรณ์อิเล็กทรอนิกส์หรือฮาร์ดแวร์กับผู้ใช้นั้นสามารถกระทำได้หลายวิธี เช่น แป้นพิมพ์ (Keyboard) เมาส์ (Mouse) หรือเซนเซอร์ต่าง ๆ แต่ที่นิยมใช้และมีประสิทธิภาพสำหรับงานทั่วไปคือการรับคำสั่งจากผู้ใช้ผ่านแป้นพิมพ์ ส่วนการตอบสนองของเครื่องคอมพิวเตอร์ให้ผู้ใช้ได้ทราบถึงผลของการประมวลผลคำสั่งที่ได้รับจากผู้ใช้ก็คือจอภาพ (Screen) และเครื่องพิมพ์ (Printer) เป็นต้น ในบทนี้จะกล่าวถึงการเชื่อมต่อกับผู้ใช้ที่รับข้อมูลผ่านแป้นพิมพ์ และการแสดงผลให้ผู้ใช้ทราบทางจอภาพเป็นหลัก

โดย... ณัฐพล วัฒนวิภัทรเจริญ

่Java ตอนที่ 10 แอพเพลท
เมื่อสร้าง Applet ซึ่งเป็นแฟ้ม .class แล้ว จะต้องสร้างแฟ้ม .htm เพื่อเรียกใช้ Applet แสดงผล ซึ่งมีหลักการเช่นเดียวกับการสร้าง Application ที่ประมวลผลใน console คือได้โปรแกรม .class ก็ต้องสั่งประมวลผลผ่านโปรแกรม java แต่ Applet มีวิธีเรียกใช้ที่ต่างออกไป ซึ่งทำได้ 2 วิธี หลังสร้างแฟ้ม .htm แล้ว

โดย... ณัฐพล วัฒนวิภัทรเจริญ

ลำดับการทำงาน 3D Animation
โครงการสร้าง 3D Animation ขนาดใหญ่จะเป็นไปตามลำดับการทำงานที่เฉพาะเจาะจง แม้แต่โครงการเล็กๆ ที่มีศิลปินเพียง 1 – 2 คนก็ยังใช้ประโยชน์จากการทำงานตามลำดับขั้นที่โครงงานใหญ่ๆ ที่มีความพร้อมสูงใช้กัน โดยอาจจะนำมาใช้เป็นบางส่วนหรือทั้งหมดเลยก็มี

โดย... ณัฐพล วัฒนวิภัทรเจริญ

Java ตอนที่ 1 ความรู้เบื้องต้นเกี่ยวกับจาวา
ภาษาจาวา (Java Language) คือ ภาษาคอมพิวเตอร์ที่ถูกพัฒนาขึ้นโดยบริษัท ซันไมโครซิสเต็มส์ เป็นภาษาสำหรับเขียนโปรแกรมที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming) โปรแกรมที่เขียนขึ้นถูกสร้างภายในคลาส ดังนั้นคลาส (Class) คือที่เก็บเมทธอด (Method) หรือพฤติกรรม (Behavior) ซึ่งมีสถานะ (State) และรูปพรรณ (Identity) ประจำพฤติกรรม

โดย... ณัฐพล วัฒนวิภัทรเจริญ

Java ตอนที่ 14 เจเอสพี
ภาษาเจเอสพี (JSP = Java Server Pages) คือ ภาษาสคริปต์ที่ทำงานบนเครื่องบริการ เช่นเดียวกับภาษา perl, php หรือ asp มีโครงสร้างภาษาแบบจาวา หรือภาษาซี โดยมีตัวแปลภาษาที่ถูกพัฒนาโดยบริษัทซันไมโครซิสเต็ม ซึ่งเป็นเทคโนโลยีของจาวา สำหรับสร้างรหัสเอชทีเอ็มแอล (HTML)

โดย... ณัฐพล วัฒนวิภัทรเจริญ

มารู้จักกราฟฟิคการ์ด (VGA Card)
กราฟฟิคกา่ร์ดหรือที่ภาษาทั่วไปเขาเรียกกันว่าการ์ดจอนั่นเอง คุณสมบัติของมันคือจะมีหน้าที่ช่วย CPU ในการประมวลผล คำสั่งเกี่ยวกับกราฟฟิค อาทิเช่น การทำงานด้านรูปภาำำพ การเล่นเกมส์ เป็นต้น เป็นหัวใจสำคัญในการทำงานด้านกราฟฟิค เลยทีเดียว หากคุณมีกราฟฟิคการ์ดที่มีความสามารถไม่สูงพอ ณ ขณะที่คุณทำการประมวลผลด้านกราฟฟิคที่มี ความซับซ้อนสูงก็จะทำให้เครื่องคอมพิวเตอร์ของคุณเสียเวลาไปกับมันอย่า่งมากและคุณก็จะรู้สึกว่าเครื่องคอมพิวเตอร์ ของคุณนั้นทำงานช้าเกินไป

โดย... ณัฐพล วัฒนวิภัทรเจริญ

การประยุกต์ใช้งานอินทราเน็ตและเอ็กทราเน็ตเพื่อสนับสนุนการค้าบนเวบ (Intranet/Extranet)
ตามความหมายแล้ว ทั้งสองระบบนี้ หมายถึง ระบบเครือข่ายที่สร้างขึ้นจากการนำหลักการหรือระบบการทำงานของอินเทอร์เนตมาใช้งานภายในองค์กร (Intranet) และระหว่างองค์กรเฉพาะกลุ่ม (Extranet) ซึ่งหน้าที่ต่างๆในการใช้งานไม่ว่าจะเป็นเรื่องเว็บบราวเซอร์ การรับ-ส่งอีเมล์ การทำการโอนย้ายแฟ้มข้อมูล (FTP) จะเหมือนกันกับที่ใช้อยู่บนระบบอินเทอร์เน็ตปกติ ซึ่งระบบนี้ทำงานด้วยการตั้งอินทราเน็ตเซิร์ฟเวอร์ขึ้นมาภายในองค์กรหรือศูนย์กลางของกลุ่มองค์กรของเรา เช่น ระหว่างบริษัทของเรากับกับกลุ่มตัวแทนจำหน่าย

โดย... ณัฐพล วัฒนวิภัทรเจริญ

Java ตอนที่ 13 จาร์
Jar (ava Archieve) หมายถึง ที่เก็บเอกสาร เป็นแฟ้มที่มีสกุลเป็น .jar สามารถเก็บแฟ้มต่าง ๆ ได้เหมือนกับแฟ้ม .zip แต่ผู้พัฒนาสามารถเรียกใช้โปรแกรมภายในแฟ้ม .jar ได้ทันที โดยไม่ต้องแตกแฟ้มออกมาก่อน แล้วจึงเรียกใช้เหมือนกับแฟ้ม .zip

โดย... ณัฐพล วัฒนวิภัทรเจริญ

Java ตอนที่ 12 แพ็คเกจ
ในอนาคต หากมี .class หลายร้อยแฟ้ม และเก็บแยก directory อย่างเป็นระเบียบ เช่น ห้อง c:\java\bin\aaa เก็บ .class 100 แฟ้ม และ c:\java\bin\burin เก็บ . class 150 แฟ้ม การเรียกใช้จากแต่ละห้อง สามารถทำได้ด้วยการใช้คำสั่ง import แต่ class ที่อยู่ในแต่ละห้องจะประกาศด้วยคำสั่ง package และมีข้อมูลว่าแต่ละห้อง จะต้องมีชื่อ class ที่ไม่ซ้ำกัน

โดย... ณัฐพล วัฒนวิภัทรเจริญ

ระบบ SAN (Storage Area Network)
ยุคการจัดการความรอบรู้ได้เริ่มต้นขึ้นแล้ว อิเล็กทรอนิกส์ทำให้ระบบการเรียนรู้ต่าง ๆ เปลี่ยนแปลงไปมาก เรามีระบบการเรียนรู้แบบใหม่ที่ชื่อ eLearning ใช้สื่อข้อมูลเป็นแหล่งการเรียนรู้ใหญ่ มีระบบ eLibrary เก็บข้อมูลหนังสือที่เป็นแบบ eBook รวมทั้งสิ่งพิมพ์ประเภท eMagazine eJournal และ eProceeding ระบบ e ยังทำให้เกิดการเรียนรู้แบบ eEducation on Demand หรือ eEOD

โดย... ณัฐพล วัฒนวิภัทรเจริญ