Hämta Sammanfattande Strömningsmått med SummaryStatistics()-Metoden
Vid bearbetning av data är det ofta nödvändigt att beräkna statistiska mått såsom summa, medelvärde, minimum, maximum och antal element.
Du har redan lärt dig hur man hittar minimum och maximum i en stream, men det finns en metod som samlar alla dessa statistikvärden på en gång. Java Stream API tillhandahåller en särskild metod kallad summaryStatistics(), som förenklar hämtningen av övergripande statistik från numeriska strömmar.
Metod summaryStatistics()
Stream API tillhandahåller även specialiserade numeriska strömmar: IntStream, LongStream och DoubleStream. Dessa fungerar precis som vanliga strömmar men är optimerade för specifika primitiva typer.
Var och en av dessa numeriska strömmar inkluderar en summaryStatistics()-metod, som returnerar en instans av IntSummaryStatistics, LongSummaryStatistics eller DoubleSummaryStatistics. Dessa objekt innehåller viktiga statistiska mått, såsom antal, summa, min, max och medelvärde.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Genom att anropa summaryStatistics() på en numerisk stream kan du snabbt samla in och analysera statistiska data om dess värden.
Viktiga metoder
I Java används klasserna IntSummaryStatistics, LongSummaryStatistics och DoubleSummaryStatistics för att samla in statistik om numerisk data. De tillhandahåller en uppsättning metoder för att extrahera viktiga statistiska mått.
Praktiskt exempel
I en webbutik behöver du analysera produktpriser för att fastställa lägsta och högsta pris, medelpris samt totalt antal artiklar.
Main.java
1234567891011121314151617181920package com.example; import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3500, 1200, 4000, 2500); IntSummaryStatistics stats = prices.stream() .collect(Collectors.summarizingInt(Integer::intValue)); System.out.println("Minimum price: " + stats.getMin()); System.out.println("Maximum price: " + stats.getMax()); System.out.println("Average price: " + stats.getAverage()); System.out.println("Total number of items: " + stats.getCount()); System.out.println("Total sum: " + stats.getSum()); } }
I denna kod skapas en lista med produktpriser och omvandlas till en numerisk stream. Metoden Collectors.summarizingInt(Integer::intValue) samlar in statistiska data och lagrar dem i ett IntSummaryStatistics-objekt. Därefter används metoderna getMin(), getMax(), getAverage(), getCount() och getSum() för att hämta nödvändiga värden.
Ytterligare metoder
Metoden combine() slår samman två statistikobjekt. Detta är användbart vid bearbetning av data i flera trådar eller vid konsolidering av statistik från olika källor.
Metoden accept() lägger manuellt till värden i ett statistikobjekt, vilket är användbart för dynamisk uppdatering av data.
Main.java
1234567891011121314151617181920212223package com.example; import java.util.IntSummaryStatistics; public class Main { public static void main(String[] args) { IntSummaryStatistics stats1 = new IntSummaryStatistics(); stats1.accept(1500); stats1.accept(2500); IntSummaryStatistics stats2 = new IntSummaryStatistics(); stats2.accept(3500); stats2.accept(4500); stats1.combine(stats2); System.out.println("Minimum price: " + stats1.getMin()); System.out.println("Maximum price: " + stats1.getMax()); System.out.println("Average price: " + stats1.getAverage()); System.out.println("Total number of items: " + stats1.getCount()); System.out.println("Total sum: " + stats1.getSum()); } }
I detta exempel skapas två IntSummaryStatistics objekt, där varje värde läggs till med metoden accept(). Metoden combine() slår sedan samman statistiken från båda objekten, och uppdaterar det totala antalet, summan samt min-/maxvärden.
Som resultat innehåller stats1 nu den sammanslagna statistiken för alla tal, vilka därefter skrivs ut till konsolen.
1. Vilken klass används för att samla statistik för int-värden i Stream API?
2. Vilken metod lägger till ett värde i ett IntSummaryStatistics-objekt?
3. Vilken metod slår samman två IntSummaryStatistics-objekt?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.33
Hämta Sammanfattande Strömningsmått med SummaryStatistics()-Metoden
Svep för att visa menyn
Vid bearbetning av data är det ofta nödvändigt att beräkna statistiska mått såsom summa, medelvärde, minimum, maximum och antal element.
Du har redan lärt dig hur man hittar minimum och maximum i en stream, men det finns en metod som samlar alla dessa statistikvärden på en gång. Java Stream API tillhandahåller en särskild metod kallad summaryStatistics(), som förenklar hämtningen av övergripande statistik från numeriska strömmar.
Metod summaryStatistics()
Stream API tillhandahåller även specialiserade numeriska strömmar: IntStream, LongStream och DoubleStream. Dessa fungerar precis som vanliga strömmar men är optimerade för specifika primitiva typer.
Var och en av dessa numeriska strömmar inkluderar en summaryStatistics()-metod, som returnerar en instans av IntSummaryStatistics, LongSummaryStatistics eller DoubleSummaryStatistics. Dessa objekt innehåller viktiga statistiska mått, såsom antal, summa, min, max och medelvärde.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Genom att anropa summaryStatistics() på en numerisk stream kan du snabbt samla in och analysera statistiska data om dess värden.
Viktiga metoder
I Java används klasserna IntSummaryStatistics, LongSummaryStatistics och DoubleSummaryStatistics för att samla in statistik om numerisk data. De tillhandahåller en uppsättning metoder för att extrahera viktiga statistiska mått.
Praktiskt exempel
I en webbutik behöver du analysera produktpriser för att fastställa lägsta och högsta pris, medelpris samt totalt antal artiklar.
Main.java
1234567891011121314151617181920package com.example; import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3500, 1200, 4000, 2500); IntSummaryStatistics stats = prices.stream() .collect(Collectors.summarizingInt(Integer::intValue)); System.out.println("Minimum price: " + stats.getMin()); System.out.println("Maximum price: " + stats.getMax()); System.out.println("Average price: " + stats.getAverage()); System.out.println("Total number of items: " + stats.getCount()); System.out.println("Total sum: " + stats.getSum()); } }
I denna kod skapas en lista med produktpriser och omvandlas till en numerisk stream. Metoden Collectors.summarizingInt(Integer::intValue) samlar in statistiska data och lagrar dem i ett IntSummaryStatistics-objekt. Därefter används metoderna getMin(), getMax(), getAverage(), getCount() och getSum() för att hämta nödvändiga värden.
Ytterligare metoder
Metoden combine() slår samman två statistikobjekt. Detta är användbart vid bearbetning av data i flera trådar eller vid konsolidering av statistik från olika källor.
Metoden accept() lägger manuellt till värden i ett statistikobjekt, vilket är användbart för dynamisk uppdatering av data.
Main.java
1234567891011121314151617181920212223package com.example; import java.util.IntSummaryStatistics; public class Main { public static void main(String[] args) { IntSummaryStatistics stats1 = new IntSummaryStatistics(); stats1.accept(1500); stats1.accept(2500); IntSummaryStatistics stats2 = new IntSummaryStatistics(); stats2.accept(3500); stats2.accept(4500); stats1.combine(stats2); System.out.println("Minimum price: " + stats1.getMin()); System.out.println("Maximum price: " + stats1.getMax()); System.out.println("Average price: " + stats1.getAverage()); System.out.println("Total number of items: " + stats1.getCount()); System.out.println("Total sum: " + stats1.getSum()); } }
I detta exempel skapas två IntSummaryStatistics objekt, där varje värde läggs till med metoden accept(). Metoden combine() slår sedan samman statistiken från båda objekten, och uppdaterar det totala antalet, summan samt min-/maxvärden.
Som resultat innehåller stats1 nu den sammanslagna statistiken för alla tal, vilka därefter skrivs ut till konsolen.
1. Vilken klass används för att samla statistik för int-värden i Stream API?
2. Vilken metod lägger till ett värde i ett IntSummaryStatistics-objekt?
3. Vilken metod slår samman två IntSummaryStatistics-objekt?
Tack för dina kommentarer!