Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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,我是一个新手程序员,在理解数组时遇到问题。我有两个字符串数组: String[]itemList={“item1”、“item2”、“item3”、“item10”} String[]国家={“美国”、“英国”、“法国”、“德国”} 正如您可能理解的那样,这个想法是,我应该能够从项目列表中选择一个项目,选择一个国家,程序应该显示该特定项目在该国家的成本。 现在,我可以使用if语句并说一些话: f(项目列表[i]=“项目1”和国家[i]=“美国”){ //在美国查看项目1的价格…} 如果我们的物品

我是一个新手程序员,在理解数组时遇到问题。我有两个字符串数组:

String[]itemList={“item1”、“item2”、“item3”、“item10”}

String[]国家={“美国”、“英国”、“法国”、“德国”}

正如您可能理解的那样,这个想法是,我应该能够从
项目列表
中选择一个项目,选择一个
国家
,程序应该显示该特定项目在该国家的成本。 现在,我可以使用
if语句
并说一些话:

f(项目列表[i]=“项目1”和国家[i]=“美国”){
//在美国查看项目1的价格…}

如果我们的物品数量较少,这就可以了,但是如果物品数组太大,比如数十万,会怎么样呢?如果我对每一项都使用
if语句
,代码将非常庞大。你们能提出更好的解决方案吗?
提前谢谢你

创建一个
对象(在单独的类中…
项.class

然后,要添加新项目,请执行以下操作:

Item someItem = new Item();
someItem.setPrice("USA", 2.99);
然后,要根据给定的国家名称获取商品的价格,请执行以下操作:

// get from user input
String countryName =...
String itemName =...

// loop  through the items list we created
for (Item item : items) {
    if (item.getName().equalsIgnoreCase(itemName)) {
        // we found the item we are looking for! get the price
        double price = item.getPrice(countryName);
        // do what you want with this...
        System.out.println(itemName + "'s price in " + countryName + " is " + price + ".");
        // We are done looking - we found the item and got it's price. End the loop
        break;
    }
}

旁注:As@JacobG。说,

制作一个
项目
对象(在一个单独的类中…
Item.class

然后,要添加新项目,请执行以下操作:

Item someItem = new Item();
someItem.setPrice("USA", 2.99);
然后,要根据给定的国家名称获取商品的价格,请执行以下操作:

// get from user input
String countryName =...
String itemName =...

// loop  through the items list we created
for (Item item : items) {
    if (item.getName().equalsIgnoreCase(itemName)) {
        // we found the item we are looking for! get the price
        double price = item.getPrice(countryName);
        // do what you want with this...
        System.out.println(itemName + "'s price in " + countryName + " is " + price + ".");
        // We are done looking - we found the item and got it's price. End the loop
        break;
    }
}

旁注:As@JacobG。说,

我这里有你的问题

我想提的几件事是

  • 字符串比较不适用于==,请仔细检查其方式和原因
  • 此外,您还需要处理您的逻辑,if-else如果组合超出了您可以处理的范围,则不会有帮助。所以,我假设根据国家和货币,你们需要显示某一特定商品的价格。我将强调一些要点供你们思考:国家是有限的,而项目的数量可以改变。此外,您还必须维护从基础货币到国家货币的价格转换。按照这些思路思考,你就会好起来。
  • 由于您是编程新手,我建议您暂时不要担心长度。在大多数情况下,数组就可以了,对于大型列表的复杂用途,我们使用各种方法来处理这个问题,分页是最常见的

  • 快乐编码 我这里有你的问题

    我想提的几件事是

  • 字符串比较不适用于==,请仔细检查其方式和原因
  • 此外,您还需要处理您的逻辑,if-else如果组合超出了您可以处理的范围,则不会有帮助。所以,我假设根据国家和货币,你们需要显示某一特定商品的价格。我将强调一些要点供你们思考:国家是有限的,而项目的数量可以改变。此外,您还必须维护从基础货币到国家货币的价格转换。按照这些思路思考,你就会好起来。
  • 由于您是编程新手,我建议您暂时不要担心长度。在大多数情况下,数组就可以了,对于大型列表的复杂用途,我们使用各种方法来处理这个问题,分页是最常见的

  • 快乐编码 假设问题已正确陈述:

    正如你可能理解的,我的想法是,我应该能够选择一个 从itemList中选择一个国家,程序应向我显示如何 在那个国家,特定项目的成本很高。现在,我可以用if 陈述并说:

    如果您从itemlist中选择了一个项目,那么该列表中应该已经有了它的索引(我们称之为item)

    这同样适用于国家(但称为指数国家)

    现在你可能有一个稀疏的2维价格数组(称为价格),然后你可以说:

    /* datatype of price is left out as a different discussion, might be long
     for penny or cent or float for learning purpose or BigDecimal for bigger prieces. 
    */
    price = prices[country][item];
    
    如果价格存储在地图中,也许你可以用同样的方式查询,可能是按国家名称、商品名称。只要我们不知道,我们只能猜测

    price= prices.get ("US" + ":" + "Java-Compiler"); 
    

    也许价格在数据库中,所以您需要查询它

    假设问题已正确陈述:

    正如你可能理解的,我的想法是,我应该能够选择一个 从itemList中选择一个国家,程序应向我显示如何 在那个国家,特定项目的成本很高。现在,我可以用if 陈述并说:

    如果您从itemlist中选择了一个项目,那么该列表中应该已经有了它的索引(我们称之为item)

    这同样适用于国家(但称为指数国家)

    现在你可能有一个稀疏的2维价格数组(称为价格),然后你可以说:

    /* datatype of price is left out as a different discussion, might be long
     for penny or cent or float for learning purpose or BigDecimal for bigger prieces. 
    */
    price = prices[country][item];
    
    如果价格存储在地图中,也许你可以用同样的方式查询,可能是按国家名称、商品名称。只要我们不知道,我们只能猜测

    price= prices.get ("US" + ":" + "Java-Compiler"); 
    

    也许价格在数据库中,所以您需要查询它

    如果您知道,您喜欢在“US”中请求“item1”,为什么需要阵列?它们有什么用途?只是为了测试,如果国家和项目是众所周知的?为什么它们共享相同的索引“i”?在100个国家/地区拥有100.000件商品,最终的价格为10.000.000。如果项目按名称排序,则可以大大加快搜索速度。映射可能更好。另外,不要将
    String
    s与
    =
    @userunknown进行比较,嗯???我们不知道用户选择哪个项目和国家。“项目1!”和“我们”“这只是一种选择。他们可以从庞大的列表中选择任何项目和任何国家/地区。编译器应该为
    =
    字符串的
    =
    用法添加默认警告。可能是初学者最常见的错误之一
    =
    比较标识和
    等于内容,通常您需要后者。@sumu00:是的,但如果您迭代i,您将只为我们选择item1,为英国选择item2,依此类推,因此您至少需要2个索引。我们不知道价格是如何储存的。如果您已询问,则表明用户选择了项目