Search code examples
javajcreator

Any other codes for this type of output


Is there any other coding or code format for this kind of output? I would like to ask for your help again. Thank you in advance! This is about array. I tried this using vector but I don't really get the idea. Please really need help.

import java.io.*;
import java.util.ArrayList;
public class DataArrays 
{ 
    public static DataInputStream a = new DataInputStream(System.in);
    public static void main(String args[])throws Exception
    {
        ArrayList<Integer> prodNum = new ArrayList<Integer>(100);
        ArrayList<String> prodName = new ArrayList<String>(100);
        ArrayList<Integer> prodPrice = new ArrayList<Integer>(100);
        ArrayList<Integer> prodPay = new ArrayList<Integer>(100);

        for(int x=1;x<=100;x++)
        {      
            System.out.println("1 - Maintenance");
            System.out.println("2 - Transaction");
        System.out.println("");

        System.out.print("Enter code: ");
        int code = Integer.parseInt(a.readLine());
        System.out.println("");

        int y = 1;
        if(code==1) 
        {
            System.out.print("") ; 
            System.out.println("Product number: "+ x);
            prodNum.add(x);             //this brings 1st input to array element #0 which is not needed
            prodNum.add(x);
            System.out.print("Product name: "); 
            String prodname = a.readLine(); 
            prodName.add(prodname);     //this brings 1st input to array element #0 which is not needed
            prodName.add(prodname);
            System.out.print("Price: ");
            int prodprice = Integer.parseInt(a.readLine());
            prodPrice.add(prodprice);   //this brings 1st input to array element #0 which is not needed
            prodPrice.add(prodprice);   
            System.out.print("Payment: ");
            int prodpay = Integer.parseInt(a.readLine());
            prodPay.add(prodpay);       //this brings 1st input to array element #0 which is not needed
            prodPay.add(prodpay);
            System.out.println("");
            System.out.println("Start New Transaction:");
            System.out.println("");
        }
        else if(code==2) 
        {
            System.out.println("Display List of Products-Prices"); 
            System.out.print("Enter product number: "); 
            int i = Integer.parseInt(a.readLine());
            i = prodNum.get(i);         //this gets the data stored in the arraylist. Assuming it starts with 1 and above
            prodNum.set(1, i);
            System.out.println("");

            System.out.println("Product name: "+ prodName.get(i));
            System.out.println("Product price: "+ prodPrice.get(i));
            System.out.println("Product payment: "+ prodPay.get(i));
            System.out.println("");
            System.out.println("Start New Transaction:");
        } 
        else if(code>=3) 
        { 
            System.out.println("Invalid");        
            System.out.println("Restart");
            System.out.println("");
        }
        else if(code==0)
        {
            System.out.println("Program will end");
            break;
    }}}}

Solution

  • Looks like you are either adding products or displaying them.

    Instead of maintaing 4 different ArrayLists, use a class Product and maintain 1 list.

    class Product {
       Integer prodNum;
       String prodName;
       Integer prodPay;
       Integer prodPrice;
    }
    
    
    List<Product> listOfProducts = new ArrayList<Product>();
    

    Also the 4 if blocks for 'code' can be replaced by a switch statement.