... | ... | @@ -20,4 +20,94 @@ |
|
|
public static int main(String[] args)
|
|
|
```
|
|
|
|
|
|
- |
|
|
\ No newline at end of file |
|
|
-
|
|
|
|
|
|
```java
|
|
|
package com.company;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
class Fruit {
|
|
|
private String name;
|
|
|
private int price;
|
|
|
|
|
|
Fruit(String name, int price) {
|
|
|
this.name = name;
|
|
|
this.price = price;
|
|
|
}
|
|
|
|
|
|
int getPrice() {
|
|
|
return price;
|
|
|
}
|
|
|
|
|
|
String getName() {
|
|
|
return name;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
class Dealer {
|
|
|
|
|
|
}
|
|
|
|
|
|
class FruitDealer extends Dealer {
|
|
|
|
|
|
final private ArrayList<Fruit> fruits;
|
|
|
|
|
|
FruitDealer(ArrayList<Fruit> fruits) {
|
|
|
this.fruits = fruits;
|
|
|
}
|
|
|
|
|
|
ArrayList<String> getFruitsNames() {
|
|
|
return fruits
|
|
|
.stream()
|
|
|
.map(Fruit::getName)
|
|
|
.collect(Collectors.toCollection(ArrayList::new));
|
|
|
}
|
|
|
|
|
|
int getFruitPrice(String fruitsName) {
|
|
|
return fruits.stream()
|
|
|
.filter(f -> f.getName().equals(fruitsName))
|
|
|
.findFirst()
|
|
|
.orElse(null)
|
|
|
.getPrice();
|
|
|
}
|
|
|
|
|
|
int buyFruit(String fruitName, int money) {
|
|
|
int fruitPrice = this.getFruitPrice(fruitName);
|
|
|
if (money > fruitPrice) {
|
|
|
return money - fruitPrice;
|
|
|
}
|
|
|
return money;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
public class Main {
|
|
|
|
|
|
private final static String WHAT_I_WANT_FRUIT = "바나나";
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
int myMoney = 500;
|
|
|
|
|
|
FruitDealer fruitDealer = new FruitDealer(new ArrayList<Fruit>() {{
|
|
|
add(new Fruit("사과", 300));
|
|
|
add(new Fruit("바나나", 200));
|
|
|
add(new Fruit("포도", 400));
|
|
|
}});
|
|
|
|
|
|
String fruitName = fruitDealer.getFruitsNames().stream()
|
|
|
.filter(s -> s.equals(WHAT_I_WANT_FRUIT))
|
|
|
.findFirst()
|
|
|
.orElse(null);
|
|
|
|
|
|
int fruitPrice = fruitDealer.getFruitPrice(fruitName);
|
|
|
|
|
|
if (myMoney > fruitPrice) {
|
|
|
myMoney = fruitDealer.buyFruit(fruitName, myMoney);
|
|
|
}
|
|
|
|
|
|
System.out.println(myMoney);
|
|
|
}
|
|
|
}
|
|
|
``` |
|
|
\ No newline at end of file |