gpt4 book ai didi

java - 如何从存储在不同文件中的 ArrayList 返回项目?

转载 作者:行者123 更新时间:2023-12-01 10:01:45 24 4
gpt4 key购买 nike

所以我当前拥有的代码可以返回对数组中对象的引用,但不会显示其中的数据。代码的第一位是用户输入数据的主文件,但对象引用仅返回用户输入的最后一个对象,我需要的是要搜索的数组,如果找到该项目则显示数据与该对象一起存储。

第一个文件。

import java.util.Scanner;
import java.util.*;
import java.util.ArrayList;

public class Inv
{


public static void main(String args[])
{

Scanner console = new Scanner(System.in);

String str;
char c;
int n=0;


//Product product = new Product();


System.out.println(" INVENTORY MANAGEMENT SYSTEM");
System.out.println("===============================================");
System.out.println("1. ADD PRODUCT DATA");
System.out.println("2. VIEW PRODUCT DATA");
System.out.println("3. VIEW REPRLENISHMENT STRATEGY");
System.out.println("===============================================");
System.out.println("4. EXIT PROGRAM");

while(n!=4)
{
System.out.print("\n Please enter option 1-4 to continue...: ");
n = Integer.parseInt(System.console().readLine());

if (n>4||n<1)
{
System.out.print("Invalid input, please try again...");
continue;
}
if (n==1)
{
str="y";
while(str.equals("y")||str.equals("Y"))
{

Inv.addItem();
System.out.print("Would you like to enter another product ? (Y or N) : ");
str = console.next();
}
continue;
}
if (n==2)
{
str="y";
while(str.equals("y")||str.equals("Y"))
{
Inv.prodData();
System.out.println("\n***************************************************\n");
System.out.print("Stay viewing this page? (Y or N) ");
str = console.next();

}
continue;
}
else

if (n==3)
{
System.out.print("View Replenishment Strategy.");
continue;
}
}
System.out.print("\nThank you for using this inventory management software.\n");
System.out.print("Developed by Xavier Edwards");
System.out.println("\n***************************************************\n");

}

public static Product product;
public static Store store;
public static void addItem ()
{
Scanner console = new Scanner(System.in);
product = new Product();
store = new Store();

String desc, id, str="";
double price = 0, sUpPrice = 0, unitCost = 0, inventoryCost = 0;
int stock = 0, demand = 0;

//if (product == null) //If product 1 is empty
//{
System.out.print("Please enter product description between 3 to 10 characters...: ");
desc = console.next();
desc = desc.toLowerCase();
product.setName(desc);

if ((desc.length() < 3 || desc.length() > 10))
{
System.out.println("\nThis Input is incorrect. Please make description between 3 to 10 characters.\n");
System.out.println("Try again with different input. ");
System.out.println("\n*****************************************\n");
Inv.addItem();
}

System.out.print("Please enter price in $ : ");
price = console.nextDouble();
product.setPrice(price);

if (price < 0)
{
System.out.println("\nThis Input is incorrect. Please make sure attributes are positve numbers\n");
System.out.println("Because of incorrect input, program will restart. ");
System.out.println("\n*****************************************\n");
Inv.addItem();
}

System.out.print("Please enter set up price. $ : ");
sUpPrice = console.nextDouble();
product.setsUpPrice(sUpPrice);

if (sUpPrice < 0)
{
System.out.println("\nThis Input is incorrect. Please make sure attributes are positve numbers\n");
System.out.println("Because of incorrect input, program will restart. ");
System.out.println("\n*****************************************\n");
Inv.addItem();
}

System.out.print("Please enter unit- cost. $ : ");
unitCost = console.nextDouble();
product.setunitCost(unitCost);

if (unitCost < 0)
{
System.out.println("\nThis Input is incorrect. Please make sure attributes are positve numbers\n");
System.out.println("Because of incorrect input, program will restart. ");
System.out.println("\n*****************************************\n");
Inv.addItem();
}

System.out.print("Please enter the inventory cost. $ : ");
inventoryCost = console.nextDouble();
product.setinvCost(inventoryCost);

if (inventoryCost < 0)
{
System.out.println("\nThis Input is incorrect. Please make sure attributes are positve numbers\n");
System.out.println("Because of incorrect input, program will restart. ");
System.out.println("\n*****************************************\n");
Inv.addItem();
}

System.out.print("Please enter the amount in stock : ");
stock = console.nextInt();
product.setstock(stock);

if (stock < 0)
{
System.out.println("\nThis Input is incorrect. Please make sure attributes are positve numbers\n");
System.out.println("Because of incorrect input, program will restart. ");
System.out.println("\n*****************************************\n");
Inv.addItem();
}

System.out.print("Please enter the demand of the product : ");
demand = console.nextInt();
product.setdRate(demand);

if (demand < 0)
{
System.out.println("\nThis Input is incorrect. Please make sure attributes are positve numbers\n");
System.out.println("Because of incorrect input, program will restart. ");
System.out.println("\n*****************************************\n");
Inv.addItem();
}

System.out.println("\n*****************************************\n");
System.out.print(desc +" Product was added successfully ");
System.out.println("\n*****************************************\n");
store.add(product);

//}
}

public static void prodData()
{
Scanner console = new Scanner(System.in);
String pOption, str;

System.out.print("\nEnter product description to view the data...\n");
pOption = console.next();

if (product == null)
{
System.out.println("\nThere is no information on this product.\n");

System.out.println("\nWould you like to try again? (Y or N) \n");
str = console.next();
Inv.prodData();
}

System.out.println("The information for the product is..... ");
System.out.println("\n*****************************************\n");
System.out.println(store.ProductList.get(0));
if (product.equals(store.ProductList.get(0)))
{
System.out.println("Product description : "+product.getName());
System.out.println("Price : $ "+product.getPrice());
System.out.println("Set-up Price : $ "+product.getsUpPrice());
System.out.println("Unit Cost : $ "+product.getunitCost());
System.out.println("Inventory Cost : $ "+product.getinvCost());
System.out.println("Amount of Stock : "+product.getstock());
System.out.println("Amount of Stock : "+product.getdRate());
}*/
}

}

第二个文件是创建数组列表和存储对象的位置。

import java.util.*;
import java.util.ArrayList;

public class Store{
public ArrayList <Product> ProductList = new ArrayList<Product> ();

public Store()
{
//ArrayList = "";

}

public void add(Product product)
{
ProductList.add(product);
}

public Product getProduct(String prodName) {
for (int i = 0; i < ProductList.size(); i++) {
if (ProductList.get(i).getName().equals(prodName)) {
return ProductList.get(i);
}
}
return null;
}

}

用于存储特定用户条目的代码

public class Product
{
public String name;
public double price, sUpPrice, unitCost, invCost;
public int stock, demand;


public Product()
{
name = "";
price = 0;
sUpPrice = 0;
unitCost = 0;
invCost = 0;
stock = 0;
demand = 0;

}

public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}

public void setPrice(double price) {
this.price = price;
}
public double getPrice() {
return this.price;
}
public void setsUpPrice(double sUpPrice) {
this.sUpPrice = sUpPrice;
}
public double getsUpPrice() {
return this.sUpPrice;
}
public void setunitCost(double unitCost) {
this.unitCost = unitCost;
}
public double getunitCost() {
return this.unitCost;
}
public void setinvCost(double invCost) {
this.invCost = invCost;
}
public double getinvCost() {
return this.invCost;
}
public void setstock(int stock) {
this.stock = stock;
}
public int getstock() {
return this.stock;
}
public void setdRate(int demand) {
this.demand = demand;
}
public int getdRate() {
return this.demand;
}

}

这就是另一个名为product.java的文件中的代码

最佳答案

如果我理解正确的话,您希望用户输入产品名称,然后显示所有产品的数据。

您可能应该使用您的 getProduct 方法。

product = store.getProduct(pOption);
if (product != null){
System.out.println("Product description : "+product.getName());
System.out.println("Price : $ "+product.getPrice());
System.out.println("Set-up Price : $ "+product.getsUpPrice());
System.out.println("Unit Cost : $ "+product.getunitCost());
System.out.println("Inventory Cost : $ "+product.getinvCost());
System.out.println("Amount of Stock : "+product.getstock());
System.out.println("Amount of Stock : "+product.getdRate());
}else{
System.out.println("\nThere is no information on this product.\n");
System.out.println("\nWould you like to try again? (Y or N) \n");
str = console.next();
Inv.prodData();
}

关于java - 如何从存储在不同文件中的 ArrayList 返回项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36763997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com