HashMap มือใหม่ ต้องเล่าให้ฟังก่อนว่า ทำงานอย่างไร
HashMap ก็เหมือนกับกล่องใส่ของสักอย่างหนึ่ง เมื่อเราจะเก็บอะไรเราก็ใส่ของลงไปก็แค่นั้น เราเรียกใหม่ว่า ใส่ของ = put แต่เมื่อจะหยิบจับอะไรขึ้นมาใช้งานละก็ หยิบขึ้นมา = get ทั้งสองวิธีคือการใช้งานหลักๆของ HashMap แต่ต่างจาก List ทั่วไปที่ คุณจะเก็บของอะไรลงไป คุณต้องระบุป้ายกำกับแปะไว้ก่อนใส่ลงไป เพื่อให้เวลาหยิบจับมาใช้งานให้ดูป้ายกำกับเป็นหลัก นั่นคือข้อกำหนด ป้ายกำกับนี้ เรียกว่า key ดังนั้นเวลาจะใส่ (put) ค่าอะไรลงไป (value) ต้องระบุ key กำกับนั่นเอง
Example :
HashMap hashMap = new HashMap();
HashMap<String,String> hashMap2 = new HashMap<String,String>();
hashMap2.put("key1","Hello World");
String say = hashMap2.get("key1");
System.out.println(say); // Print out console "Hello World"
แล้วการวางของลงไป เราจะเอามา Edit ค่ามันยังไง ?
วิธีการคือ get ค่า key ขึ้นมาก่อน แล้วใส่ค่าใหม่ ลงใน key นั่นเลย ค่าก็จะถูกทับไป ลองนึกภาพว่า เราหยิบของขึ้นมาจากกล่อง แล้วดึงป้ายกำกับออกจากอันเก่าไปแปะอันใหม่ แล้ววางลงไปในกล่องเหมือนเดิม key นั้นก็จะได้ค่าใหม่ละเรียบร้อย
Example :
HashMap<String,String> hashMap = new HashMap<String,String>();
hashMap.put("key1","Hello World");
System.out.println(hashMap.get("key1");
/* do code something */
hashMap.put("key1","Hello Thailand");
System.out.println(hashMap.get("key1");
การฝึกเขียนโปรแกรม อธิบายการเขียนโปรแกรมขั้นพื้นฐาน ขั้นฝึกหัด ตัวอย่างการ เขียนโปรแกรมเบื้องต้น ข้อมูลเกี่ยวกับการเขียนโปรแกรม และวิทยาการคอมพิวเตอร์
แสดงบทความที่มีป้ายกำกับ Coding แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Coding แสดงบทความทั้งหมด
วันพฤหัสบดีที่ 29 ธันวาคม พ.ศ. 2559
วันพฤหัสบดีที่ 26 มีนาคม พ.ศ. 2558
Comment เตือนความจำ
ผมมีปัญหาบ่อยมาก เวลานำโค้ดเก่ามาแก้ไข แต่จำไม่ได้ว่าครั้งก่อนหน้าแก้อะไรไปบ้าง ในส่วนไหนของไฟล์ และก็เรื่องอะไรที่แก้ไข ทำให้ต้องฟื้นความจำสักระยะ
ไม่รู้ว่าผมเป็นปัญหาคนเดียวหรือป่าวนะ เพราะส่วนใหญ่เวลา deploy โค้ดขึ้น server แล้ว ก็จะไปเขียนโปรแกรมอื่นต่อ ซึ่งเป็นระบบเดียวกันหรือคนละระบบ ทำให้เราจำอะไรเก่าๆได้ยากพอสมควร(ยกเว้นความจำดีเลิศ) เนื่องจากต้องมานั่งแก้ปัญหาโจทย์โปรแกรมใหม่ ซึ่งเดือนๆนึงก็วนอยู่แบบนี้ Coding ก็บอกว่าเติม ing อยู่แล้ว ก็เลยต้อง Code ไปเรื่อยๆ ตามประสาโปรแกรมเมอร์ครับ
ดังนั้น ผมจึงต้อง comment บรรทัดที่จะแก้ไข ว่า วันนี้ ได้แก้ไขอะไร ทำอะไรไปแล้วในจุดๆนี้ ระบบเดิมเป็นยังไง สิ่งที่เปลี่ยนเปลี่ยนเป็นอะไร ไว้เตือนความจำ ไม่ว่าเราหรือเพื่อนหรือคนอื่นที่จะมาทำต่อจะได้รู้ว่าส่วนนี้มีการแก้ไขอะไรไป เราอาจจะไม่อยู่แล้วมีคนมาทำต่อก็ว่ากันไป
จึงเป็นที่มาของการ comment ก่อนทำการแก้ไขของผม แต่ถ้าเป็นการเขียน code ใหม่ในไฟล์ใหม่เลย ก็จะไม่เขียน comment อะไรลงไป เพราะถือว่าเป็นโปรแกรมใหม่หรือระบบใหม่ ไว้เป็นที่เข้าใจตามระบบ ถ้าศึกษาใหม่ๆก็ลอง comment ไว้ก็ได้ จะได้คุ้นเคย ไม่ต้องเสียเวลามานั่งไล่โค้ดย้อนหลัง มันแค่เรื่องง่ายๆนิดเดียวจริงๆ ^^
ไม่รู้ว่าผมเป็นปัญหาคนเดียวหรือป่าวนะ เพราะส่วนใหญ่เวลา deploy โค้ดขึ้น server แล้ว ก็จะไปเขียนโปรแกรมอื่นต่อ ซึ่งเป็นระบบเดียวกันหรือคนละระบบ ทำให้เราจำอะไรเก่าๆได้ยากพอสมควร(ยกเว้นความจำดีเลิศ) เนื่องจากต้องมานั่งแก้ปัญหาโจทย์โปรแกรมใหม่ ซึ่งเดือนๆนึงก็วนอยู่แบบนี้ Coding ก็บอกว่าเติม ing อยู่แล้ว ก็เลยต้อง Code ไปเรื่อยๆ ตามประสาโปรแกรมเมอร์ครับ
ดังนั้น ผมจึงต้อง comment บรรทัดที่จะแก้ไข ว่า วันนี้ ได้แก้ไขอะไร ทำอะไรไปแล้วในจุดๆนี้ ระบบเดิมเป็นยังไง สิ่งที่เปลี่ยนเปลี่ยนเป็นอะไร ไว้เตือนความจำ ไม่ว่าเราหรือเพื่อนหรือคนอื่นที่จะมาทำต่อจะได้รู้ว่าส่วนนี้มีการแก้ไขอะไรไป เราอาจจะไม่อยู่แล้วมีคนมาทำต่อก็ว่ากันไป
จึงเป็นที่มาของการ comment ก่อนทำการแก้ไขของผม แต่ถ้าเป็นการเขียน code ใหม่ในไฟล์ใหม่เลย ก็จะไม่เขียน comment อะไรลงไป เพราะถือว่าเป็นโปรแกรมใหม่หรือระบบใหม่ ไว้เป็นที่เข้าใจตามระบบ ถ้าศึกษาใหม่ๆก็ลอง comment ไว้ก็ได้ จะได้คุ้นเคย ไม่ต้องเสียเวลามานั่งไล่โค้ดย้อนหลัง มันแค่เรื่องง่ายๆนิดเดียวจริงๆ ^^
วันเสาร์ที่ 10 พฤษภาคม พ.ศ. 2557
ตัวอย่างการเขียนโปรแกรม วางสี่เหลี่ยมเล็ก ให้อยู่ตรงกลาง สี่เหลี่ยมใหญ่
การเขียนโปรแกรม แก้ไขโจทย์ปัญหา ในการนำรูปสี่เหลี่ยมขนาดเล็ก ไปวางในตำแหน่งตรงกลาง ในกล่องสี่เหลี่ยมที่มีขนาดใหญ่กว่า โจทย์อาจจะมาในลักษณะ ให้ตำแหน่งตัวอักษรให้อยู่ตรงกลางรูป เป็นต้น มาดูตัวอย่างการเขียนโปรแกรมกัน
public class SetCenter {
public static void main(String args[]){
//Rectangle point x,y start as 0,0
float x1,x2,x3,x4;
float y1,y2,y3,y4;
//x,y point
x1 = 0.0f; x2 = 0.0f; x3 = 100.0f; x4 = 100.0f;
y1 = 0.0f; y2 = 40.0f; y3 = 40.0f; y4 = 0.0f;
//Rectangle set center in box x,y
float a = 60.0f; float b = 20.0f; // width x height
//now fix specify x,y point
//and have rectangle or axb
//calculate
float ax = ((x4 - x1) - a)/2;
float ay = ((y2 - y1) - b)/2;
System.out.println("Start draw at point" + ax + " , " + ay);
}
}
เป็นเบื้องต้นในการเขียนโปรแกรม ตัวอย่างนี้มันไม่ได้สร้างเป็นโปรเจคที่ใหญ่ๆ แต่เป็นติ่งหนึ่งในโปรเจคหรือโปรแกรมใหญ่ เช่น Web WebApplication เป็นต้น
public class SetCenter {
public static void main(String args[]){
//Rectangle point x,y start as 0,0
float x1,x2,x3,x4;
float y1,y2,y3,y4;
//x,y point
x1 = 0.0f; x2 = 0.0f; x3 = 100.0f; x4 = 100.0f;
y1 = 0.0f; y2 = 40.0f; y3 = 40.0f; y4 = 0.0f;
//Rectangle set center in box x,y
float a = 60.0f; float b = 20.0f; // width x height
//now fix specify x,y point
//and have rectangle or axb
//calculate
float ax = ((x4 - x1) - a)/2;
float ay = ((y2 - y1) - b)/2;
System.out.println("Start draw at point" + ax + " , " + ay);
}
}
เป็นเบื้องต้นในการเขียนโปรแกรม ตัวอย่างนี้มันไม่ได้สร้างเป็นโปรเจคที่ใหญ่ๆ แต่เป็นติ่งหนึ่งในโปรเจคหรือโปรแกรมใหญ่ เช่น Web WebApplication เป็นต้น
สมัครสมาชิก:
บทความ (Atom)
