Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java
Java
  1. โปรแกรม Java หาตัวเลขที่เกิดขึ้นครั้งคี่ (Odd Occurrences)

    โจทย์: หาตัวเลขที่เกิดขึ้นจำนวนครั้งคี่ ใน Array สมมติมีเพียงตัวเดียวที่เกิดครั้งคี่ (อื่นๆ เป็นคู่) วิธี 1: Bitwise XOR (Optimal - O(n) time, O(1) space) คุณสมบัติ XOR: a ^ a = 0, a ^ 0 = a, a ^ b ^ a = b คู่ที่เหมือนกันจะ cancel กันออก เหลือตัวที่ครั้งคี่ public class Demo { static int findO

  2. โปรแกรม Java หาตัวอักษรแรกที่ไม่ซ้ำใน Stream ของ Characters

    โจทย์: หา First Non-Repeating Character ใน Stream อ่าน character ทีละตัว แสดงตัวแรกที่ยังไม่ซ้ำ ณ จุดนั้น (Streaming algorithm) ตัวอย่างโค้ด (ปรับปรุง: ใช้ Queue + Count Array) import java.util.*; public class Demo { static final int MAX_CHAR = 256; // ASCII public static void firstN

  3. Unreachable Code Error ใน Java

    Unreachable Code Error Compile-time error: คอมไพเลอร์ตรวจพบโค้ดที่ ไม่มีทางรันถึงได้ แน่นอน สาเหตุหลัก Statement หลัง return, throw, break, continue (ใน loop) Infinite loop (while(true), for(;;)) ที่ไม่มี break if (false) { ... } หรือ condition ที่ compile-time constant เป็น false ตัวอย่าง: Infi

  4. ใช้ TreeMap เรียง User-defined Objects ใน Java

    TreeMap: Sorted Map (Red-Black Tree) เก็บ key-value เรียงตาม key อัตโนมัติ (natural ordering หรือ Comparator) O(log n) สำหรับ put/get โจทย์: เรียง User Objects ตามอายุ (Integer) import java.util.*; class Person { String name; int age; Person(String name, int age) { this.name = name; t

  5. ใช้ชื่อ Class สำเร็จรูปเป็น Class/Variable Name ใน Java ได้หรือไม่?

    1. ใช้ชื่อ Class สำเร็จรูปเป็น Class Name: ได้ Java อนุญาตให้สร้าง class ชื่อเดียวกับ class ใน java.lang (หรือ package อื่น) ได้ ตัวอย่าง // ไฟล์: Number.java public class Number { public static void main(String[] args) { System.out.println(Custom Number class works!); // ใช้ j

  6. การใช้ Underscore ใน Numeric Literals (Java 7+)

    Underscore in Numeric Literals Java 7+ อนุญาตให้ใช้ _ คั่นกลุ่มตัวเลข เพื่ออ่านง่ายขึ้น ไม่ส่งผลต่อค่า ตัวอย่าง public class Demo { public static void main(String[] args) { // Integer int million = 1_000_000; int creditCard = 1234_5678_9012_3456; // ต้องเป็น long จริงๆ

  7. การใช้ Variables ใน JShell (Java 9+ REPL)

    JShell Variable Declaration ใน JShell session สามารถประกาศตัวแปรได้โดยตรง ไม่ต้องอยู่ใน class/method ตัวอย่าง Session 3.14 Implicit Variables (ไม่ตั้งชื่อ) Expression ที่ไม่ได้ assign ให้ variable JShell จะสร้าง implicit variable เอง ($1, $2...) System.out.println($1 + $2) 84 คำสั่งจัดการ Var

  8. Overload และ Override Static Methods ใน Java ได้หรือไม่?

    Static Method Overloading: ได้ Static methods สามารถ overload ได้ (ชื่อเดียวกัน parameter ต่างกัน) เหมือน instance methods ตัวอย่าง Overloading public class Demo { public static void test() { System.out.println(test() no args); } public static void test(int val) {

  9. โครงสร้างและสมาชิกของ Java Program

    โครงสร้างมาตรฐานของ Java Class // 1. Package declaration (optional) package com.example; // 2. Import statements import java.util.*; // 3. Class declaration public class ClassName { // 4. Fields (instance/static variables) static int staticField = 10; int instanceField; // 5.

  10. Sum ของ List ด้วย Stream Filter ใน Java 8+

    Stream API: Filter แล้ว Sum ตัวอย่าง import java.util.*; public class Demo { public static void main(String[] args) { List 5: + sum); } } ผลลัพธ์ 5: 271 คำอธิบายขั้นตอน: stream() - สร้าง Stream จาก List 5) 5 i) - แปลง Stream → IntStream (primitive, เร็วกว่า) sum() - Termina

  11. Thread Interrupt ใน Java: หยุด Thread อีกตัวด้วย interrupt()

    Thread.interrupt() กลไกมาตรฐานสำหรับขอให้ thread หยุดทำงาน ไม่บังคับหยุดทันที แต่ตั้ง interrupt flag และปลุก thread ที่ blocked (sleep, wait, join, I/O) ตัวอย่าง: Interrupt Thread ที่ Sleep public class Demo extends Thread { @Override public void run() { try { System.ou

  12. Method Overloading และ Ambiguity กับ Varargs ใน Java

    ปัญหา Ambiguity กับ Varargs เมื่อ overload method ที่มี varargs (T...) ตัวละแยกชนิดไม่ได้ คอมไพเลอร์จะ confuse ตัวอย่างที่ Error public class Demo { static void myFun(double... vals) { System.out.println(double...: + vals.length + args); } static void myFun(boolean... va

  13. Package Imports ใน JShell (Java 9+)

    JShell: Java REPL (Read-Eval-Print Loop) โหมด interactive สำหรับทดลองโค้ด Java โดยไม่ต้องเขียน class ทั้งไฟล์ Default Imports พิมพ์ /imports ใน JShell จะเห็น 10 packages ที่ import อัตโนมัติ: /imports | import java.io.* | import java.math.* | import java.net.* | import java.nio.file.*

  14. ค้นหาสตริงใน Matrix ด้วย Split Function ใน Java

    โจทย์: หาสตริงใน Matrix (2D array ของ characters) แนวนอนและแนวตั้ง ตัวอย่างโค้ด (ปรับปรุง) = 2 || (parts.length == 1 && !parts[0].equals(row))) { return true; } } return false; } // ค้นหาแนวตั้ง: transpose matrix ก่อน static String[] tran

  15. Scala vs Java: เปรียบเทียบภาษาโปรแกรมมิ่ง

    Scala ผสมผสาน Functional + Object-Oriented programming Syntax ต่อยาก อ่านยากกว่า Java (learning curve ชัน) Compile ช้ากว่า (source → bytecode) รองรับ Lazy Evaluation (คำนวณเมื่อจำเป็น) Variables immutable by default (val แทน var) ไม่มีคีย์เวิร์ด static ใช้ object (singleton) แทน ทุก operation เป็น

  16. โปรแกรม Java หาผลรวมอนุกรม n² - (n-1)²

    วิเคราะห์อนุกรม พจน์ที่ n: T(n) = n² - (n-1)² = n² - (n² - 2n + 1) = 2n - 1 ผลรวม n พจน์แรก: S(n) = Σ(2i - 1) = 2Σi - Σ1 = 2(n(n+1)/2) - n = n² สรุป: ผลรวม = n² ตัวอย่างโค้ด (ใช้สูตรตรง - O(1)) public class Demo { // คำนวณ n² mod 1000000007 static final long MOD = 1_000_000_007L;

  17. โปรแกรม Java Stooge Sort (อัลกอริทึมจัดเรียงแบบ Recursive)

    Stooge Sort คืออะไร? O(n^(log 3 / log 1.5)) ≈ O(n^2.7095) - ช้ามาก ใช้เพื่อการศึกษา/ความสนุก ไม่ใช้งานจริง หลักการ: เรียง 2/3 ส่วนแรก → 2/3 ส่วนหลัง → 2/3 ส่วนแรกอีกครั้ง ตัวอย่างโค้ด 2) { int t = (h - l + 1) / 3; stoogeSort(arr, l, h - t); // 2/3 ส่วนแรก s

Total 1935 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:75/97  20-คอมพิวเตอร์/Page Goto:1 69 70 71 72 73 74 75 76 77 78 79 80 81