import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
////////스트림을 리스트에 다시 담기
public class z12 {
// 그루핑바이로 MAP<company, List<creditcard> 만들기
// Map<String, List<creditcard>> commap = cd
/// Map<String, List<creditcard>> 형태로 키를 이름으로
//Map<String, Double> 형태로 키를 이름으로 밸류를 리밋의 에버리지로
/// 이름이 a인것들만 다시 리스트로
//Map<String, Integer> cardmap 해쉬맵 만들어서 키는 이름, 밸류는 1로
public static void main(String[] args) {
List<creditcard> cd = new ArrayList<>();
cd.add(new creditcard("a", 2));
cd.add(new creditcard("b", 1));
cd.add(new creditcard("c", 5));
cd.add(new creditcard("d", 7));
cd.add(new creditcard("e", 1));
//특정 카드사의 카드만 뽑아서 collect로 수집
Map<String, List<creditcard>> commap = cd.stream().collect(Collectors.groupingBy(
//키를 구하는 메소드 구현
card -> card.getName()));
//구리핑 바이 메소드 MAP<COmpany, Average(limitmonty
Map<String, Double> avglim = cd.stream().collect(Collectors.groupingBy(
//키를 구하는 메소드 구현
card -> card.getName(),
Collectors.averagingDouble(card -> card.getLimit())
));
System.out.println(commap.toString());
//리스트로 다시 바꿈
/////////////////리스트를 맵으로 변환
List<creditcard> acom = cd.stream().filter(a -> a.getName().equals("a")).toList();
System.out.println(acom);
Map<String, Integer> cardmap = new HashMap<>();
cardmap = cd.stream().collect(Collectors.toMap(a -> a.getName(), a -> 1));
System.out.println(cardmap);
}
}
class creditcard {
@Override
public String toString() {
return "creditcard{" +
"name='" + name + '\'' +
'}';
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
int limit;
String name;
creditcard(String name, int limit) {
this.limit = limit;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
댓글 영역