Как написать метод,который помещает в Коллекцию сразу все объект(а не по одному)? Есть класс Products с конструктором и переопределением toString и класс Shop который содержит коллекцию.Как правильно написать метод ,чтобы в этом случае:
Product product=new Product("coffe",new BigDecimal("4.63"));
Product product1= new Product("Apple",new BigDecimal("2.27"));
Product product2 = new Product("Kiwi",new BigDecimal("0.99"));
Shop go=new Shop();
одним методом Коллекция заполнилась сразу тремя продуктами ?
остальные два класса выглядит следующим образом:
public class Product {
private String name;
private BigDecimal price;
public String getName() {
return name;
}
public BigDecimal getPrice() {
return price;
}
public Product(String name,BigDecimal price){
if (!name.isEmpty() && price!=null) {
this.name=name;
this.price=price;
}
}
@Override
public String toString() {
return
"name='" + name + '\'' +
", price=" + price ;
}
public class Shop {
private List<Product> products = new ArrayList<>(10);
public void addProduct(Product product) {
products.add(product);
}
public void removeProduct(Product product) {
products.remove(product);
}
public List<Product> productByName(String title) {
List<Product> product = new ArrayList<>(10);
for (Product prod : products) {
if (prod.getName().equals(title)) {
product.add(prod);
}
}
return product;
}
public List<Product> productInRange(BigDecimal minPrice, BigDecimal maxPrice) {
List<Product> product = new ArrayList<>();
for (Product prod : products) {
if (prod.getPrice().compareTo(minPrice) > 0 && prod.getPrice().compareTo(maxPrice) < 0) {
product.add(prod);
}
}
return product;
}
public void addAllProducts() {
}
public void addProducts(Product... products) {
Collections.addAll(this.products, products);
}
должен подойти вариант с varargs.
http://www.linkex.ru/java/varargs.php
public void addProduct(Product... product) {
for(Product p : product)
products.add(p);
}
А в основном -
go.addProduct(product,product1,product2);
Однако хотелось бы еще узнать саму реализацию подачи товара, думаю можно сделать лучше.
Уберите инициализацию ArrayList
и создайте конструктор таким образом
public Shop(Product ... products){
this.products = Arrays.asList(products);
}
потом через него можно будет заполнить список таким образом:
Product product=new Product("coffe",new BigDecimal("4.63"));
Product product1= new Product("Apple",new BigDecimal("2.27"));
Product product2 = new Product("Kiwi",new BigDecimal("0.99"));
Shop go=new Shop(product,product1,product2);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
пишу простенький клиент и сервер на UDP, по заданию в клиенте необходимо использовать DatagramChannel, тк
Есть несколько карточек, они частично лежат друг на другеКак сделать так чтобы при наведении на карточку она появлялась перед всеми карточками...