长数组计算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个索引。我们不知道价格是如何储存的。如果您已询问,则表明用户选择了项目