Java 在另一个数组循环中引用数组
我试图在一个for循环中使用一个数组的项,该for循环正在另一个数组中循环。例如,我想在询问每个项目的价格时显示项目名称(已经存在的数组)。“第[i]项的价格是多少”。我认为在这种情况下不能使用item[I]。我也尝试过使用get方法和计数器变量,但肯定是做错了什么 readPrice部分不起作用-特别是项[i]。有没有人建议如何在不使用项目[i]的情况下完成同样的事情 我是java新手,如果这是一个显而易见的答案,我很抱歉,但我真的非常感谢您的帮助 这是我的密码:Java 在另一个数组循环中引用数组,java,arrays,for-loop,Java,Arrays,For Loop,我试图在一个for循环中使用一个数组的项,该for循环正在另一个数组中循环。例如,我想在询问每个项目的价格时显示项目名称(已经存在的数组)。“第[i]项的价格是多少”。我认为在这种情况下不能使用item[I]。我也尝试过使用get方法和计数器变量,但肯定是做错了什么 readPrice部分不起作用-特别是项[i]。有没有人建议如何在不使用项目[i]的情况下完成同样的事情 我是java新手,如果这是一个显而易见的答案,我很抱歉,但我真的非常感谢您的帮助 这是我的密码: private String
private String[] items;
private int[] priority;
private double[] price;
public void readInput()
{
Scanner keyboard = new Scanner(System.in);
System.out.println("You will need to enter seven shopping items.");
items = new String[7];
for (int i = 0; i < items.length; i++)
{
System.out.println("Enter an item: ");
items[i] = keyboard.nextLine();
}
}
**public void readPrice()**
{
price = new double[7];
Scanner keyboard = new Scanner(System.in);
for(int i = 0; i < price.length; i++)
{
System.out.println("Enter the price for " + **items[i]**);
price[i] = keyboard.nextDouble();
}
}
私有字符串[]项;
私有int[]优先级;
私人双[]价格;
public void readInput()
{
扫描仪键盘=新扫描仪(System.in);
System.out.println(“您需要输入七个购物项目”);
items=新字符串[7];
对于(int i=0;i
好吧,这是给你的答案。有两种主要方法:将对象items
作为参数传递,或使其成为全局对象
全局变量方法
对于全局方法,您似乎已经在这样做了,首先将对象声明为类的字段:
class MyClass
{
private String[] items = new String[7];
//...Rest of class goes here
}
现在,您可以根据需要从两种方法访问它
public readInput()
{
// Add stuff to items
items[0] = "hi";
}
public readPrice()
{
// Read from items
System.out.println(items[0]);
}
方法参数法
现在,如果您希望将对象从一个方法传递到另一个方法,但不希望任何其他方法都可以访问它,则可以将其设置为如下参数:
public readPrice(String[] items)
{
// Read from items
System.out.println(items[0]);
}
private String[] items;
private int[] priority;
private double[] price;
public void readInput()
{
Scanner keyboard = new Scanner(System.in);
System.out.println("You will need to enter seven shopping items.");
items = new String[7];
for (int i = 0; i < items.length; i++)
{
System.out.println("Enter an item: ");
items[i] = keyboard.nextLine();
}
}
**public void readPrice()**
{
price = new double[7];
Scanner keyboard = new Scanner(System.in);
for(int i = 0; i < price.length; i++)
{
System.out.println("Enter the price for " + **items[i]**);
price[i] = keyboard.nextDouble();
}
public void printdata(){
for(int I=0; I<7; I++){
System.out.println("item name: " +item[i] +" price: "+price[i])
}
}
然后可以从其他地方调用该方法,传递对象类型的特定实例
public inputPrice()
{
String[] items = new String[7];
// Add stuff to items
items[0] = "hi";
this.readPrice(items);
}
如果要多次调用单个方法,但要使其作用于不同的输入,则传递参数尤其有用。您可以创建一个类项
public class Item {
String name;
double price;
public void setName(String name) {
this.name = name;
}
public void setPrice(double price) {
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
@Override
public String toString() {
return "Item{" + "name=" + name + ", price=" + price + '}';
}
}
在创建类Item的对象之后
public class TestPaper {
public static void main(String[] args) {
Item item;
Item[] itemTable = new Item[7];
ArrayList<Item> itemlist = new ArrayList<>();
for (int i = 0; i < 7; i++) {
item = new Item();
//set value
item.setName("item1");
item.setPrice(200);
//store the object to a table or an arraylist
itemTable[i] = item;
itemlist.add(item);
}
for (Item temp : itemTable) {
System.out.println(temp.toString());
}
}
}
公共类试卷{
公共静态void main(字符串[]args){
项目;
Item[]itemTable=新项目[7];
ArrayList itemlist=新建ArrayList();
对于(int i=0;i<7;i++){
项目=新项目();
//设定值
item.setName(“item1”);
项目.固定价格(200);
//将对象存储到表或arraylist
itemTable[i]=项目;
项目列表。添加(项目);
}
用于(项目温度:项目表){
System.out.println(temp.toString());
}
}
}
这是更好的解决方案,但我会用你的代码回答你
您有7个项目,因此可以按如下方式打印项目:
public readPrice(String[] items)
{
// Read from items
System.out.println(items[0]);
}
private String[] items;
private int[] priority;
private double[] price;
public void readInput()
{
Scanner keyboard = new Scanner(System.in);
System.out.println("You will need to enter seven shopping items.");
items = new String[7];
for (int i = 0; i < items.length; i++)
{
System.out.println("Enter an item: ");
items[i] = keyboard.nextLine();
}
}
**public void readPrice()**
{
price = new double[7];
Scanner keyboard = new Scanner(System.in);
for(int i = 0; i < price.length; i++)
{
System.out.println("Enter the price for " + **items[i]**);
price[i] = keyboard.nextDouble();
}
public void printdata(){
for(int I=0; I<7; I++){
System.out.println("item name: " +item[i] +" price: "+price[i])
}
}
私有字符串[]项;
私有int[]优先级;
私人双[]价格;
public void readInput()
{
扫描仪键盘=新扫描仪(System.in);
System.out.println(“您需要输入七个购物项目”);
items=新字符串[7];
对于(int i=0;i 对于(int I=0;I请提供发生错误的堆栈跟踪,以使每个人都满意。我个人将创建一个地图,为项目分配价格
代码
封装测试;
导入java.util.HashMap;
导入java.util.Map;
导入java.util.Map.Entry;
导入java.util.Scanner;
公共类项目{
私有整数项长度=10;
私有映射项=新HashMap();
公共物品(){
System.out.println(“请填写以下详细信息:”);
对于(int i=0;i
输出
请填写以下详情:
输入项目名称:
鞋
输入鞋子的价格:
20
输入项目名称:
衬衫
输入衬衫的价格:
20
输入项目名称:
项链
输入项链的价格:
50
输入项目名称:
手镯
输入手镯的价格:
30
输入项目名称:
袜子
输入袜子的价格:
5.
输入项目名称:
人字拖鞋
输入人字拖的价格:
10
输入项目名称:
苏打汽水
输入苏打水的价格:
2.
输入项目名称:
钻石
输入钻石的价格:
20000
输入项目名称:
奇怪的东西
输入商品的价格:
99999
输入项目名称:
另一件怪事
输入另一个奇怪项目的价格:
99999
以下是您的物品:
+------------------------+
|项目|价格|
|项链| 50.0 |
|另一个奇怪的项目| 99999.0 |
|衬衫| 20.0 |
|手镯| 30.0 |
|钻石| 20000.0 |
|W