0Pricing
Java Academy · บทเรียน

การดำเนินการช่วงและการรวมค่า

range, sum, average, summaryStatistics

การดำเนินการช่วงและการรวมค่า เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

การสร้างช่วงค่า

IntStream.range(start, end) สร้างจำนวนเต็มต่อเนื่องตั้งแต่จุดเริ่มต้นจนถึงก่อนจุดสิ้นสุด โดยไม่รวมค่าจุดสิ้นสุด

import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        IntStream.range(0, 5).forEach(System.out::println);
    }
}

rangeClosed รวมจุดสิ้นสุด

IntStream.rangeClosed(start, end) รวมค่าสุดท้ายด้วย ดังนั้น rangeClosed(1, 5) จะให้ค่าตั้งแต่ 1 ถึง 5

import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        int sum = IntStream.rangeClosed(1, 5).sum();
        System.out.println(sum);
    }
}

การแทนที่ลูปตามดัชนี

ช่วงค่าเป็นวิธีที่อ่านเข้าใจง่ายสำหรับแทนที่ลูป for ที่อ้างอิงดัชนีเมื่อต้องวนซ้ำตามตำแหน่งในอาร์เรย์

import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        String[] names = {"a", "b", "c"};
        IntStream.range(0, names.length)
            .forEach(i -> System.out.println(i + ": " + names[i]));
    }
}

sum

sum บวกสมาชิกทั้งหมดและคืนผลลัพธ์เป็นชนิดพื้นฐาน

import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        int total = IntStream.rangeClosed(1, 100).sum();
        System.out.println(total);
    }
}

average

average คืนค่า OptionalDouble เพราะสตรีมอาจว่างเปล่าได้

import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        double avg = IntStream.of(2, 4, 6, 8).average().getAsDouble();
        System.out.println(avg);
    }
}

min และ max

min และ max คืนค่า OptionalInt ใช้ getAsInt เมื่อทราบว่าสตรีมไม่ว่างเปล่า

import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        int hi = IntStream.of(3, 9, 1, 7).max().getAsInt();
        int lo = IntStream.of(3, 9, 1, 7).min().getAsInt();
        System.out.println(lo + " .. " + hi);
    }
}

จำนวน

count คืนค่าจำนวนสมาชิกเป็นชนิด long

import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        long n = IntStream.rangeClosed(1, 50).filter(x -> x % 3 == 0).count();
        System.out.println(n);
    }
}

summaryStatistics

summaryStatistics คำนวณจำนวน ผลรวม ค่าต่ำสุด ค่าเฉลี่ย และค่าสูงสุดในการวนผ่านเพียงรอบเดียว โดยคืนค่าเป็น IntSummaryStatistics

import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        IntSummaryStatistics stats = IntStream.of(5, 10, 15, 20).summaryStatistics();
        System.out.println(stats);
    }
}

การอ่านสถิติแต่ละรายการ

ออบเจ็กต์สรุปจะแสดงค่า getCount, getSum, getMin, getMax และ getAverage

import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        IntSummaryStatistics s = IntStream.rangeClosed(1, 10).summaryStatistics();
        System.out.println("count=" + s.getCount());
        System.out.println("avg=" + s.getAverage());
        System.out.println("max=" + s.getMax());
    }
}

การรวมช่วงค่ากับค่ารวม

ช่วงค่าและการรวมค่าทำงานร่วมกันได้อย่างเป็นธรรมชาติ: สร้างค่า แปลงค่า แล้วลดรูปให้เหลือเป็นตัวเลขเดียว

import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        int sumOfSquares = IntStream.rangeClosed(1, 4)
            .map(n -> n * n)
            .sum();
        System.out.println(sumOfSquares);
    }
}

การรวมค่าด้วย LongStream

LongStream มีเมธอดสำหรับช่วงค่าและการรวมค่าแบบเดียวกัน โดยคืนค่าเป็น LongSummaryStatistics

import java.util.stream.LongStream;

public class Main {
    public static void main(String[] args) {
        long sum = LongStream.rangeClosed(1, 1000).sum();
        System.out.println(sum);
    }
}

ตรวจสอบอย่างรวดเร็ว

range และ rangeClosed แตกต่างกันอย่างไร

สรุปทบทวน

คุณได้สร้างและสรุปช่วงค่าชนิดพื้นฐาน:

  • range ไม่รวมจุดสิ้นสุด ส่วน rangeClosed รวมจุดสิ้นสุด
  • ค่ารวม ได้แก่ sum, average (OptionalDouble), min/max (OptionalInt) และ count
  • summaryStatistics คำนวณค่าทั้งหมดในการวนผ่านเพียงรอบเดียว

คำถามที่พบบ่อย

บทเรียน “การดำเนินการช่วงและการรวมค่า” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การดำเนินการช่วงและการรวมค่า” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การดำเนินการช่วงและการรวมค่า”

range, sum, average, summaryStatistics คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การดำเนินการช่วงและการรวมค่า” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. IntStream และ LongStream
  2. การดำเนินการช่วงและการรวมค่า
  3. การแมปไปยังและจากสตรีมออบเจ็กต์
  4. การสร้างสตรีมชนิดพื้นฐาน
← กลับไปที่ Java Academy