Я создал класс Product, в котором инициализирован универсальный arrayList, и когда я устанавливаю Arraylist для ноутбуков и ArrayList для настольных компьютеров из основного класса, возникает проблема: если я добавляю 5 ноутбуков и затем добавляю 5 рабочих столов, 5 рабочих столов переходят на позициюиз 5 ноутбуков они не включаются после 5-го индекса. Они должны запускаться после окончания обработки данных ноутбука. Когда я печатаю ArrayList для ноутбука и настольный массив ArrayList методом getter, в классе поступают только данные Desktop ArrayList.
Извините за мой английский. Если вы не можете понять.
import java.util.ArrayList;
public class Main {public static void main(String[] args) {
Products P1 = P1=new Products();
Laptop L1= new Laptop(1,"Dell","XPS","i7|2.8GHZ|8th Gen",95000);
Laptop L2= new Laptop(2,"HP","Probook","i5|2.4GHZ|7th Gen",85000);
Laptop L3= new Laptop(3,"Lenovo","Ideapad","i7|2.6 GHZ|7th Gen",80000);
Laptop L4= new Laptop(4,"Sony","Vaio","i5|2.2 GHZ|7th Gen",90000);
Laptop L5= new Laptop(5,"Asus","Zenbook","i3|2.6 GHZ|6th Gen",75000);
Desktop D1 = new Desktop(7,"i5-2.8GHZ","6th Gen","1 TB",16,40000);
Desktop D2 = new Desktop(8,"i7-2.6GHZ","7th Gen","2 TB",32,85000);
Desktop D3 = new Desktop(9,"i5-8500","8th Gen","3 TB",16,90000);
Desktop D4 = new Desktop(10,"i7-7800","7th Gen","1 TB",16,75000);
Desktop D5 = new Desktop(11,"i3-8350","8th Gen","1 TB",32,65000);
ArrayList<Laptop> laptop = new ArrayList<Laptop>();
laptop.add(L1);
laptop.add(L2);
laptop.add(L3);
laptop.add(L4);
laptop.add(L5);
laptop.add(L6);
ArrayList<Desktop> desktop = new ArrayList<Desktop>();
desktop.add(D1);
desktop.add(D2);
desktop.add(D3);
desktop.add(D4);
desktop.add(D5);
for(int i = 0; i<laptop.size(); i++){
P1.setProduct(laptop);
}
for( int j=0;j<desktop.size();j++){
P1.setProduct(desktop);
}
P1.specifyCategory();
}
}
И
import java.util.ArrayList;
import java.util.Scanner;
public class Products<T> extends Category{
private ArrayList<T> product;
public Products() {
}
Products(ArrayList<T> product) {
this.product.addAll(product);
}
void specifyCategory(){
super.categories();
Scanner input4 = new Scanner(System.in);
System.out.println("\t\t\t\t\t\t\tChoose\n\t\t\t\t\t\t\t 1 for Laptop\n\t\t\t\t\t\t\t 2 for Desktop\n\t\t\t\t\t\t\t 3 for Accessories\n\t\t\t\t\t\t\t 4 for Services\n\t\t\t\t\t\t\t 5 for Contact Us");
int no=input4.nextInt();
if(no==1){
System.out.println("\t\t\t\t\t\t\t*\t\t\t\t\t\t\t\t\t1.Laptop\t\t\t\t\t\t\t\t\t\t\t*");
System.out.println(getLaptop());
}
else if(no==2){
System.out.println("\t\t\t\t\t\t\t*\t\t\t\t\t\t\t\t\t2.Desktops\t\t\t\t\t\t\t\t\t\t\t*");
//
System.out.println(getDesktop());
}
else if(no==3){
System.out.println("\t\t\t\t\t\t\t*\t\t\t\t\t\t\t\t\t3.Accessories\t\t\t\t\t\t\t\t\t\t*");
// addAccessoriesInventory();
}
else if(no==4){
System.out.println("\t\t\t\t\t\t\t*\t\t\t\t\t\t\t\t\t5.Services \t\t\t\t\t\t\t\t\t\t\t*");
}
else if(no==5){
System.out.println("\t\t\t\t\t\t\t*\t\t\t\t\t\t\t\t\t6.Contact Us\t\t\t\t\t\t\t\t\t\t*");
}
else{
System.out.println("You have entered incorrect option");
specifyCategory();
}
}
public ArrayList<Laptop> getLaptop(){
return (ArrayList<Laptop>) this.product;
}
public ArrayList<Desktop> getDesktop(){
return (ArrayList<Desktop>) this.product;
}
public void setProduct(ArrayList<T> product) {
this.product = product;
}
}