Есть четыре класса. Первый класс товары
class Good {
private String name;
private double price;
public Good(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
}
Второй класс Онлайн Магазин
class OnlineStore {
private String name;
List<Good> goods;
public OnlineStore(String name, List<Good> list) {
this.name = name;
this.goods = list;
}
public String getName() {
return name;
}
public List<Good> getGoods() {
return goods;
}
}
Третий класс, где происходит поиск товара (где уже есть методы поиска товара с минимальной ценной и создание списка магазинов с заданными товарами с минимальной ценной)
class ProductSearchSrvice {
List<OnlineStore> store;
public ProductSearchSrvice(List<OnlineStore> store) {
if(store.isEmpty()) {
throw new IllegalArgumentException();
}
this.store = store;
}
public List<OnlineStore> getStore() {
return store;
}
public double findMinPriceByGoodName(String goodName) {
double result = 0;
for (Iterator<OnlineStore> iterator = store.iterator(); iterator.hasNext(); ) {
OnlineStore onlineStore = iterator.next();
for (Iterator<Good> iterator1 = onlineStore.getGoods().iterator(); iterator1.hasNext(); ) {
Good good = iterator1.next();
if (good.getName().equals(goodName)) {
if (good.getPrice() < result || result == 0) {
result = good.getPrice();
}
}
}
}
return result;
}
public List<OnlineStore> makeListOfMinPrices(String goodName){
double result = 0;
List<OnlineStore> listOfStores = new ArrayList<OnlineStore>();
for (OnlineStore store : this.store) {
for (Good good : store.goods) {
if (good.getName().equals(goodName)) {
if (good.getPrice() < result || result == 0) {
result = good.getPrice();
listOfStores.add(store);
}
}
}
}
return listOfStores;
}
}
И четвертый класс, где все задания реализуются
public class Lab102 {
public static void main(String[] args) {
Good Tuner = new Good("Tuner", 350.0);
Good Cable_HDMI = new Good("Cable HDMI", 29.6);
Good Control_panel = new Good("Cable HDMI", 150.5);
Good Tuner_1 = new Good("Tuner", 1323.0);
Good Cable_HDMI_1 = new Good("Control_panel", 470.0);
Good Control_panel_1 = new Good("Control_panel", 617.0);
Good Tuner_2 = new Good("Tuner", 267.89);
Good Cable_HDMI_2 = new Good("Cable HDMI", 19.5);
Good Control_panel_2 = new Good("Control_panel", 350.0);
ArrayList<Good> listOfMirElectroniki = new ArrayList<>();
ArrayList<Good> listOfHIKVISION = new ArrayList<>();
ArrayList<Good> listOfOLX = new ArrayList<>();
listOfMirElectroniki.add(Tuner);
listOfMirElectroniki.add(Cable_HDMI);
listOfMirElectroniki.add(Control_panel);
listOfHIKVISION.add(Tuner_1);
listOfHIKVISION.add(Cable_HDMI_1);
listOfHIKVISION.add(Control_panel_1);
listOfOLX.add(Tuner_2);
listOfOLX.add(Cable_HDMI_2);
listOfOLX.add(Control_panel_2);
OnlineStore MirElectroniki = new OnlineStore("Mir Electroniki", listOfMirElectroniki);
OnlineStore HIKVISION = new OnlineStore("HIKVISION", listOfHIKVISION);
OnlineStore OLX = new OnlineStore("OLX", listOfOLX);
//Задание №1 типизированный итератор
System.out.println("Задание №1 типизированный итератор");
List<OnlineStore> stores = new ArrayList<>();
stores.add(MirElectroniki);
stores.add(HIKVISION);
stores.add(OLX);
ProductSearchSrvice service = new ProductSearchSrvice(stores);
double minPrice = service.findMinPriceByGoodName("Tuner");
System.out.println("Min price for Tuner " + minPrice);
double minPrice_1 = service.findMinPriceByGoodName("Cable HDMI");
System.out.println("Min price for Cable HDMI " + minPrice_1);
double minPrice_2 = service.findMinPriceByGoodName("Control_panel");
System.out.println("Min price for Control_panel " + minPrice_2);
//Задание №2 цикл for-each
System.out.println(" ");
System.out.println("Задание №2 цикл for-each");
List<OnlineStore> onstore = new ArrayList<OnlineStore>();
onstore = service.makeListOfMinPrices("Tuner");
for(OnlineStore store: onstore){
System.out.println("List of store (Tuner): " + store.getName());
}
onstore = service.makeListOfMinPrices("Cable HDMI");
for(OnlineStore store_1: onstore){
System.out.println("List of store (Cable HDMI): " + store_1.getName());
}
onstore = service.makeListOfMinPrices("Control_panel");
for(OnlineStore store_2: onstore){
System.out.println("List of store (Control_panel): " + store_2.getName());
}
//Задание №3 нетипизированный оператор
System.out.println(" ");
System.out.println("Задание №3 нетипизированный итератор");
}
}
Как это сделать с помощью нетипизированного итератора?
Класс ProductSearchSrvice
...
public OnlineStore findStoreWithRecommendedPrices(double[] recommendedPrices) {
OnlineStore onlineStore = null;
for (Iterator iterator = store.iterator(); iterator.hasNext(); ) {
onlineStore = (OnlineStore) iterator.next();
for (Iterator iterator1 = onlineStore.getGoods().iterator(); iterator1.hasNext(); ) {
Good good = (Good) iterator1.next();
switch (good.getName()) {
case "Tuner":
if (good.getPrice() < recommendedPrices[0]) {
break;
}
break;
case "Cable HDMI":
if (good.getPrice() < recommendedPrices[1]) {
break;
}
break;
case "Control_panel":
if (good.getPrice() < recommendedPrices[2]) {
break;
}
break;
}
}
}
return onlineStore;
}
Вызов из Lab102
:
//Задание №3 нетипизированный оператор
System.out.println(" ");
System.out.println("Задание №3 нетипизированный итератор");
double[] recommendedPrices = {300, 20, 400}; // [0]-Tuner, [1]-Cable HDMI, [2]-Control_panel
OnlineStore onlineStore = service.findStoreWithRecommendedPrices(recommendedPrices);
System.out.println("onlineStore with recommended prices: " + onlineStore.getName());
Виртуальный выделенный сервер (VDS) становится отличным выбором
В HashMap хрянятся ключ-значение, пользователь вводит ключ, программа выводит значениеКак это реализовать?
Появилось задание написать скрипт на Java & Selenium для Linkedin, чтобы автоматически добавлять в друзья всех подряд людей отображающихся в списке...
Всем привет! Решил разобраться с валидацией и прикрутить к своему учебному проекту проверку данных при регистрации пользователя