Övning med Stream API
Det är dags för dig att öva med Stream API. Du har några enkla uppgifter som innebär användning av olika Stream API-metoder. Den här gången kommer inga specifika uppgifter att ges. Istället får du en lista att arbeta med och vad det förväntade resultatet ska vara. Med andra ord är ditt mål att utföra operationer på listan för att uppnå det förväntade utfallet.
Den här typen av uppgift hjälper dig att utveckla förmågan att uppnå resultat utan en tydlig specifikation. Du kommer endast att se indata och förväntat resultat.
Du måste använda Stream API för att lösa dessa uppgifter!
Uppgift 1:
Indata:
Main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Write your code here } }
Använd Stream API för att kvadrera varje tal i listan och samla resultatet i en ny lista. Förväntad utdata:
[1, 4, 9, 16, 25]
Använd metoderna map() och toList() här.
package com.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = numbers.stream().map(e -> e * e).toList();
System.out.println(result);
// Write your code here
}
}
Uppgift 2:
Indata:
Main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); // Write your code here } }
Använd Stream API för att hitta längden på det längsta namnet i listan. Förväntad utdata:
7
Använd de intermediära metoderna map() och max(), samt den terminala metoden get().
package com.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
Integer result = names
.stream()
.map(e -> e.length())
.max((integer, newInteger) -> Integer.compare(integer, newInteger))
.get();
System.out.println(result);
// Write your code here
}
}
Uppgift 3
Indata:
Main.java
123456789101112131415package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); // Write your code here } }
Använd Stream API för att räkna det totala antalet unika ord (skiftlägesokänsligt) i alla meningar. Förväntad utdata:
37
Använd de intermediära metoderna flatMap() och distinct(), samt den terminala metoden count().
package com.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> sentences = Arrays.asList(
"Java Stream API provides a fluent interface for processing sequences of elements.",
"It supports functional-style operations on streams of elements, such as map-reduce transformations.",
"In this exercise, you need to count the total number of words in all sentences."
);
long count = sentences.stream()
.flatMap(e -> Arrays.stream(e.split(" ")))
.distinct()
.count();
System.out.println(count);
// Write your code here
}
}
Uppgift 4:
Indata:
Main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); // Write your code here } }
Använd Stream API för att hitta sammansättningen av de två första orden med jämn längd.
Förväntad utdata:
bananacherry
Använd de intermediära metoderna filter() och limit(), samt den terminala metoden collect().
package com.example;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
String result = words.stream()
.filter(e -> e.length() % 2 == 0)
.limit(2)
.collect(Collectors.joining());
System.out.println(result);
// Write your code here
}
}
Uppgift 5:
Indata:
Main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Write your code here } }
Använd Stream API för att hitta summan av kvadraterna av jämna tal i listan.
Förväntad utdata:
220
Använd de intermediära metoderna mapToInt() och filter(), samt den terminala metoden sum().
package com.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int sum = numbers.stream()
.mapToInt(e -> e * e)
.filter(e -> e % 2 == 0)
.sum();
System.out.println(sum);
// Write your code here
}
}
Bra jobbat!
Om du har slutfört alla uppgifter, väl utfört!
Vissa metoder i uppgifterna kan ha varit okända tidigare. För att utforska dem, öppna IntelliJ IDEA och kontrollera deras funktionalitet.
Programmering innebär kontinuerligt lärande, så undersök nya lösningar, sök online och använd dokumentation vid behov.
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
Fantastiskt!
Completion betyg förbättrat till 4
Övning med Stream API
Svep för att visa menyn
Det är dags för dig att öva med Stream API. Du har några enkla uppgifter som innebär användning av olika Stream API-metoder. Den här gången kommer inga specifika uppgifter att ges. Istället får du en lista att arbeta med och vad det förväntade resultatet ska vara. Med andra ord är ditt mål att utföra operationer på listan för att uppnå det förväntade utfallet.
Den här typen av uppgift hjälper dig att utveckla förmågan att uppnå resultat utan en tydlig specifikation. Du kommer endast att se indata och förväntat resultat.
Du måste använda Stream API för att lösa dessa uppgifter!
Uppgift 1:
Indata:
Main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Write your code here } }
Använd Stream API för att kvadrera varje tal i listan och samla resultatet i en ny lista. Förväntad utdata:
[1, 4, 9, 16, 25]
Använd metoderna map() och toList() här.
package com.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = numbers.stream().map(e -> e * e).toList();
System.out.println(result);
// Write your code here
}
}
Uppgift 2:
Indata:
Main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); // Write your code here } }
Använd Stream API för att hitta längden på det längsta namnet i listan. Förväntad utdata:
7
Använd de intermediära metoderna map() och max(), samt den terminala metoden get().
package com.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
Integer result = names
.stream()
.map(e -> e.length())
.max((integer, newInteger) -> Integer.compare(integer, newInteger))
.get();
System.out.println(result);
// Write your code here
}
}
Uppgift 3
Indata:
Main.java
123456789101112131415package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); // Write your code here } }
Använd Stream API för att räkna det totala antalet unika ord (skiftlägesokänsligt) i alla meningar. Förväntad utdata:
37
Använd de intermediära metoderna flatMap() och distinct(), samt den terminala metoden count().
package com.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> sentences = Arrays.asList(
"Java Stream API provides a fluent interface for processing sequences of elements.",
"It supports functional-style operations on streams of elements, such as map-reduce transformations.",
"In this exercise, you need to count the total number of words in all sentences."
);
long count = sentences.stream()
.flatMap(e -> Arrays.stream(e.split(" ")))
.distinct()
.count();
System.out.println(count);
// Write your code here
}
}
Uppgift 4:
Indata:
Main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); // Write your code here } }
Använd Stream API för att hitta sammansättningen av de två första orden med jämn längd.
Förväntad utdata:
bananacherry
Använd de intermediära metoderna filter() och limit(), samt den terminala metoden collect().
package com.example;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
String result = words.stream()
.filter(e -> e.length() % 2 == 0)
.limit(2)
.collect(Collectors.joining());
System.out.println(result);
// Write your code here
}
}
Uppgift 5:
Indata:
Main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Write your code here } }
Använd Stream API för att hitta summan av kvadraterna av jämna tal i listan.
Förväntad utdata:
220
Använd de intermediära metoderna mapToInt() och filter(), samt den terminala metoden sum().
package com.example;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int sum = numbers.stream()
.mapToInt(e -> e * e)
.filter(e -> e % 2 == 0)
.sum();
System.out.println(sum);
// Write your code here
}
}
Bra jobbat!
Om du har slutfört alla uppgifter, väl utfört!
Vissa metoder i uppgifterna kan ha varit okända tidigare. För att utforska dem, öppna IntelliJ IDEA och kontrollera deras funktionalitet.
Programmering innebär kontinuerligt lärande, så undersök nya lösningar, sök online och använd dokumentation vid behov.
Tack för dina kommentarer!