แสดงบทความที่มีป้ายกำกับ Coding แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Coding แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 29 ธันวาคม พ.ศ. 2559

HashMap ทำงานอย่างไร และ วิธี edit value HashMap [Java]

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");




วันพฤหัสบดีที่ 26 มีนาคม พ.ศ. 2558

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 เป็นต้น