我正在使用Java做一些任务,这就是我应该做的。
给定整数X
,您应该阅读X
行,每行包含一个字符串和2个整数值x
和y
。
**Input**
2 <-- Read 2 lines
PLUS 10 30 <-- PLUS refers to adding 30 to 10
MINUS -6 20 <-- MINUS refers to minus 20 from -6
**Output**
40
-26
如何存储值40和-26? 我目前正在使用数组。代码如下。
for(int i = 0; i < limit; i++)
{
String limitInput = sc.next();
x = sc.nextInt();
y = sc.nextInt();
if(limitInput.equals("PLUS"))
{
System.out.println(x+y);
limitArray[i] = x + y;
}
else if(limitInput.equals("MINUS"))
{
limitArray[i] = x - y;
}
else
{
limitArray[i] = x * y;
}
}
有没有使用数组更简单的方法?
答案 0 :(得分:1)
不要认为数据结构比数组更简单。如果要存储结果以及操作/行号;建议你使用HashMap。 但是你; map绝对不比数组简单。
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
int line = 1; //read line number
int result= 40; //read final result
map.put(line, result);
这样你就可以通过迭代map得到每一行的结果。
但是如果你还想存储你已经执行的操作;然后建议使用像这样的多图
Map<Integer, ArrayList<String>> map = new HashMap<Integer, ArrayList<String>>();
ArrayList<String> a = new ArrayList<String>();
a.add("PLUS"); //add operation
a.add(result); //add result
map.put(line, a);
从列表中读取值时;只需确保将值(在位置1)解析为int,因为它存储为String。