코딩
JAVA - Stream 예제
Bullseye 불새
2022. 10. 6. 14:57
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
class Bonbu {
String name;
int numberOfSite;
int revenue;
public Bonbu(String name, int numberOfSite, int revenue) {
this.name = name;
this.numberOfSite = numberOfSite;
this.revenue = revenue;
}
String getName() {
return this.name;
}
int getNumberOfSite() {
return this.numberOfSite;
}
int getRevenue() {
return this.revenue;
}
@Override
public String toString() {
return name + " - number of site : "+ numberOfSite +" - revenue: "+revenue;
}
}
public class Sample {
public static void main(String[] args) {
List<Bonbu> bonbus = new ArrayList<>(Arrays.asList(
new Bonbu("tomo", 100, 200),
new Bonbu("kucu", 300, 700),
new Bonbu("plnt", 50, 1000),
new Bonbu("zoki", 60, 1000)
));
List<Bonbu> result = bonbus.stream()
.filter(x->x.revenue>300)
.sorted(Comparator
.comparing(Bonbu::getRevenue)
.thenComparing(Bonbu::getNumberOfSite).reversed()
)
.collect(Collectors.toList());
result.forEach(System.out::println);
}
}
JAVA에서도 Python의 판다스처럼 사용할 수 있는 스타일이 있군요.
Dart에도 이와 유사한(모사한) 방식이 있습니다.