การดำเนินการช่วงและการรวมค่า
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- IntStream และ LongStream
- การดำเนินการช่วงและการรวมค่า
- การแมปไปยังและจากสตรีมออบเจ็กต์
- การสร้างสตรีมชนิดพื้นฐาน