แมปและการนับความถี่
พื้นฐานของ Map (put/get/remove) การวนผ่านรายการคู่ข้อมูล ตัวนับความถี่คำ และ TreeMap สำหรับมุมมองที่เรียงลำดับแล้ว
แมปและการนับความถี่ เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน
Map คืออะไร
Map ใช้เก็บคู่คีย์→ค่า ตัวเลือกที่เหมาะสมมีดังนี้:
- HashMap: ทำงานเร็วและไม่รักษาลำดับ
- TreeMap: เรียงลำดับคีย์
- LinkedHashMap: จดจำลำดับการเพิ่มข้อมูล
การดำเนินการทั่วไป
การดำเนินการหลัก:
- put(k,v), get(k), containsKey(k), remove(k)
- ขนาด: size()
- วนซ้ำ: ใช้ entrySet() เพื่อเข้าถึงทั้งคีย์และค่า
โค้ด: พื้นฐาน Map
คีย์ไม่ซ้ำกัน การใช้คีย์เดิมอีกครั้งจะแทนที่ค่าของคีย์นั้น ใช้ entrySet() เพื่อวนซ้ำผ่านรายการคู่ข้อมูล
public class Main {
public static void main(String[] args) {
java.util.Map<String, Integer> scores = new java.util.HashMap<>();
scores.put("Ada", 90);
scores.put("Bob", 75);
scores.put("Ada", 95); // replaces old value
System.out.println("Bob's score=" + scores.get("Bob"));
System.out.println("Has Ada? " + scores.containsKey("Ada"));
scores.remove("Bob");
for (java.util.Map.Entry<String, Integer> e : scores.entrySet()) {
System.out.println(e.getKey() + " -> " + e.getValue());
}
}
}
แนวคิดเรื่องความถี่
การนับคำ: วนผ่านคำต่าง ๆ และอัปเดตค่าด้วย getOrDefault: map.put(w, map.getOrDefault(w,0)+1)
โค้ด: ความถี่ของคำ
getOrDefault ทำให้การนับกระชับขึ้น แต่ละคำจะเพิ่มค่าปัจจุบันของตนขึ้นอีก 1
public class Main {
public static void main(String[] args) {
String[] words = { "to", "be", "or", "not", "to", "be" };
java.util.Map<String,Integer> counter = new java.util.HashMap<>();
for (String w : words) {
int newVal = counter.getOrDefault(w, 0) + 1;
counter.put(w, newVal);
}
System.out.println(counter);
}
}
โค้ด: TreeMap ที่เรียงลำดับ
TreeMap เรียงลำดับคีย์โดยอัตโนมัติ จึงเป็นวิธีที่รวดเร็วในการแสดงผลลัพธ์ตามลำดับตัวอักษร
public class Main {
public static void main(String[] args) {
java.util.Map<String,Integer> counts = new java.util.HashMap<>();
counts.put("banana",2);
counts.put("apple",3);
counts.put("cherry",1);
java.util.Map<String,Integer> sorted = new java.util.TreeMap<>(counts);
for (java.util.Map.Entry<String,Integer> e : sorted.entrySet()) {
System.out.println(e.getKey() + " -> " + e.getValue());
}
}
}
แบบฝึกตรวจสอบ HashMap
ตรวจสอบอย่างรวดเร็ว: ข้อความใดเกี่ยวกับ HashMap ที่ถูกต้อง
ทบทวน
ทบทวน: Map ใช้เก็บคู่คีย์→ค่า คุณได้เรียนรู้การใช้ put/get/remove การนับคำด้วย getOrDefault และมุมมองที่เรียงลำดับด้วย TreeMap
คำถามที่พบบ่อย
บทเรียน “แมปและการนับความถี่” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “แมปและการนับความถี่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “แมปและการนับความถี่”
พื้นฐานของ Map (put/get/remove) การวนผ่านรายการคู่ข้อมูล ตัวนับความถี่คำ และ TreeMap สำหรับมุมมองที่เรียงลำดับแล้ว คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน
บทเรียน “แมปและการนับความถี่” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แมปและการนับความถี่
- Comparable กับ Comparator
- การเรียงลำดับและค้นหาด้วย Collections