Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建数组表以便客户可以选择要购买的项目_Java_Arrays - Fatal编程技术网

Java 创建数组表以便客户可以选择要购买的项目

Java 创建数组表以便客户可以选择要购买的项目,java,arrays,Java,Arrays,我创建了一个“模拟”订购系统,根据客户对JoptionPane窗口的回复获取他们的输入 例如“您希望购买标准卡、Uno卡或Rook卡的类型?”他们输入答案,我的系统会记录下来,随后会关联价格 我现在想把这些物品放在一个数组中,这样我就可以继续并指定一个价格。例如,一位客户想要订购一副“蓝色、标准、塑料卡片”,我想要的与此订单相关的价格是3美元 我曾尝试在main方法中创建产品,然后在Card类和子类中创建产品。我只是想知道我是否在正确的轨道上,或者我是否需要走一条不同的路线来完成这一点 //Ar

我创建了一个“模拟”订购系统,根据客户对JoptionPane窗口的回复获取他们的输入

例如“您希望购买标准卡、Uno卡或Rook卡的类型?”他们输入答案,我的系统会记录下来,随后会关联价格

我现在想把这些物品放在一个数组中,这样我就可以继续并指定一个价格。例如,一位客户想要订购一副“蓝色、标准、塑料卡片”,我想要的与此订单相关的价格是3美元

我曾尝试在main方法中创建产品,然后在Card类和子类中创建产品。我只是想知道我是否在正确的轨道上,或者我是否需要走一条不同的路线来完成这一点

//Array
class DiamondCards{
    public static void main(String[] args){
    
Card[] card = new Card[6];

// Fill in Cards
card[0] = new Card("Laminated Coating", "Standard", 2);
card[1] = new Card("Laminated Coating", "Uno", 2.50);
card[2] = new Card("Laminated Coating", "Rook", 2.75);
card[3] = new Card("Plastic Card", "Standard", 3);
card[4] = new Card("Plastic Card", "Uno", 3.50);
card[5] = new Card("Plastic Card", "Rook", 3.75);
// Card Super Class
static public class Card{
    public String coatingType;
    public String deckType;
    public double cost;    
    
public Card(String coatingType, String deckType, 
double cost){

    this.coatingType = coatingType;
    this.deckType = deckType;
    this.cost = cost;

    }
}

使用
列表
而不是数组。数组的大小是固定的,如果要调整数组的大小,需要创建一个新的数组并复制所有元素,但这是一项昂贵的操作

List<Card> cards = new ArrayList<>();

// Fill in Cards
cards.add(new Card("Laminated Coating", "Standard", 2));
cards.add(new Card("Laminated Coating", "Uno", 2.50));
cards.add(new Card("Laminated Coating", "Rook", 2.75));
cards.add(new Card("Plastic Card", "Standard", 3));
cards.add(new Card("Plastic Card", "Uno", 3.50));
cards.add(new Card("Plastic Card", "Rook", 3.75));
List cards=new ArrayList();
//填写卡片
增加(新卡片(“层压涂层”,“标准”,2));
增加(新卡片(“层压涂层”,“Uno”,2.50));
增加(新卡片(“层压涂层”,“Rook”,2.75));
增加(新卡(“塑料卡”、“标准卡”3));
增加(新卡(“塑料卡”,“Uno”,3.50));
添加(新卡(“塑料卡”,“车”,3.75));
然后添加一个新的

看起来不错


为了使它更好,您可以将
属性设置为私有,并添加setter和getter方法。您的IDE可以免费执行此操作。假设您希望使成本评估动态化,您不必更改
卡的API。

是的,您走的是正确的道路

使用ArrayList或Vector可以获得更灵活的集合

您需要为客户选择的项目创建另一个集合

如果客户可以选择“蓝色”等颜色,则需要添加“颜色”


客户选择的项目列表可能是一个对象列表,其中每个对象有两个成员:卡片和数量。

表示您需要推导该产品的价格客户选择的是什么?