Streamサンプル

Run Settings
LanguageJava
Language Version
Run Command
import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class Main { static class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public String toString() { return String.format("name=%s,age=%d", this.name, this.age); } } public static List<Person> getData() { List<Person> personList = new ArrayList<>(); personList.add(new Person("Alice", 25)); personList.add(new Person("Bob", 30)); personList.add(new Person("Charlie", 35)); personList.add(new Person("Dave", 35)); return personList; } public static void main(String[] args) { var personList = getData(); // nameを取り出し List<String> upperCaseNames = personList.stream() .map(person -> person.getName().toUpperCase()) .collect(Collectors.toList()); System.out.println("* map result1"); System.out.println(String.join(",", upperCaseNames)); // nameを取り出し List<String> names = personList.stream() .map(Person::getName) .collect(Collectors.toList()); System.out.println("* map result2"); System.out.println(String.join(",", names)); // Filter処理 List<Person> filteredList = personList.stream() .filter(person -> person.getAge() >= 30) .collect(Collectors.toList()); System.out.println("* filter result"); filteredList.forEach(it -> { System.out.println(it); }); // Group by 処理 Map<Integer, Long> ageCount = personList.stream() .collect(Collectors.groupingBy(Person::getAge, Collectors.counting())); System.out.println("* group-by result"); ageCount.keySet().stream().forEach(key -> { System.out.printf("%s = %s\n", key, ageCount.get(key)); }); } }
Editor Settings
Theme
Key bindings
Full width
Lines