วันอังคารที่ 25 สิงหาคม พ.ศ. 2552

Java for loop list & map ,Python for loop array & map

ในส่วนของการเขียน program นั้น ย่อมต้องมีเรื่องการอ่าน data มากมายเข้ามาเกี่ยวข้องเป็นธรรมดา
ถ้าเป็นเรื่อง List การวนดึงข้อมูลก็คงไม่ใช่เรื่องยุ่งยาก แต่สำหรับ ดังตัวอย่าง
List<String> strList = new LinkedList<String>();
strList.add("comment1-hi,");
strList.add("comment2-i");
strList.add("comment3-am");
strList.add("comment4-Programmer");

for(String str : strList){
    System.out.println(" >> " + str):
}
แต่ในกรณีข้อมูล ที่เป็น Map<String, String> งงว่าทำไมไม่ทำ for ได้ แต่ก็่ช่างครับ
เราย่อมมีวิธีตามนี้เลยครับ
Map<String, String> strMap = new HashMap<String, String>();
strMap.put("comment1", "hi,");
strMap.put("comment2", "i");
strMap.put("comment3", "am");
strMap.put("comment4", "Programmer");
แบบ โบราณ ทำไว้เผื่อจะเอา keys ไปทำอย่างอื่น -.-" คิดเผื่อ เหอ ๆ
Set<String> keys = strMap.keySet();
for( String key : keys ) {
    System.out.println( " >> " + key + "-" + strMap.get( key ) );
}
แบบใหม่ใช้แล้วทิ้ง ^_^
for( Map.Entry<String, String> entry : strMap.entrySet() ) {
    System.out.println( " >> " + entry.getKey() + "-" + entry.getValue() );
}
ลองไปดู python เล่น ๆ ซิ (python จะไม่มี map นะครับ เขาใช้ dict คล้ายกัน)
strDict = {}
strDict['comment1'] = 'hi,'
strDict['comment2'] = 'i,'
strDict['comment3'] = 'am'
strDict['comment4'] = 'Programmer'
เวลาดีงข้อมูลออกมาก็
for k in strDict:
    print ' >> %s-%s' %(k, strDict[k])
!อ่าว เสร็จแล้วหรอ
งั้นไปดู list ของ python กันบ้าง จริง ๆ ก็คือ array แบบ java ครับ
strList = []
strList.append("comment1-hi,");
strList.append("comment2-i");
strList.append("comment3-am");
strList.append("comment4-Programmer");
เอ้าาา วนซิ
for l in strList:
    print ' >>', l
ถ้าลองเพิ่มว่า จะ print เฉพาะ comment ที่ลงท้ายเลขคู่ java จะยาวใหมน้อ ....
เมื่อรู้อย่างนี้แล้ว ก็เลิกเขียนจาวา แล้วไปเขียน python กันดีกว่า อิอิ

ไม่มีความคิดเห็น: