foreach로 해도 되고 map으로 해도 된다.
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class z15 {
public static void main(String[] args) {
ArrayList<card> list = new ArrayList<>();
list.add(new card("a", 3));
list.add(new card("b", 1));
list.add(new card("c", 0));
list.add(new card("d", 1));
list.add(new card("e", 2));
list.add(new card("f", 5));
Stream<card> a = list.stream().filter(g -> g.validyear <= 1).map(b -> {
b.validenlong(3,g->{
System.out.println(g+"년 연장되었습니다.");
b.setValidyear(b.getValidyear()+g);
System.out.println(b);
});
return b;
});
a.forEach(z-> System.out.println(z.getCardname()+"의 유효기간은" + z.validyear));
}
//public void change(){
//
// this.validyear = validyear + year;
//
//}
}
class card {
@Override
public String toString() {
return "card{" +
"cardname='" + cardname + '\'' +
", validyear=" + validyear +
'}';
}
public String getCardname() {
return cardname;
}
public void setCardname(String cardname) {
this.cardname = cardname;
}
public int getValidyear() {
return validyear;
}
public void setValidyear(int validyear) {
this.validyear = validyear;
}
String cardname;
int validyear;
void validenlong(int year, cardvali c) {
// this.validyear = validyear+3;
c.enlong(year);
// System.out.println(getCardname() + " 카드는 " + year + "년 연장되었습니다.");
}
card(String cardname, int validyear) {
this.cardname = cardname;
this.validyear = validyear;
}
}
interface cardvali {
void enlong(int year);
}
[람다, 인터페이스] 문자 세개열 입력, char같으면 가져오기 (0) | 2023.04.06 |
---|---|
[람다+함수인터페이스] 선생이 한거 (0) | 2023.04.06 |
[람다+함수형인터페이스] 카드연장 (0) | 2023.04.06 |
[bifunction]바이펑션 인터페이스 (0) | 2023.04.06 |
[Function] function 자세한설명 (0) | 2023.04.06 |
댓글 영역