【发布时间】:2018-08-07 04:27:52
【问题描述】:
用户可以创建任意数量的 Thing 实例。用户将字符串输入到带有数字的对象中。
例如创建的对象
Thing thing1 = new Thing("input1", 3);
Thing thing2 = new Thing("input2", 1);
Thing thing3 = new Thing("input2", 3000);
Thing thing4 = new Thing("input1", 4);
Thing thing5 = new Thing("input4", 200");
ArrayList<Thing> ThingList= new ArrayList<Thing>();
ThingList.add(thing1);
.....
.....
我需要让程序搜索 ArrayList of Things 并输出输入的字符串以及具有相同输入字符串的所有整数的总和
输出示例
name count
input1 7
input2 3001
input4 200
我不确定如何在不加倍输入同名输入的情况下做到这一点。除非我与我输入的名字进行比较
到目前为止我所做的(注意它只能找到并汇总我输入的内容以供搜索。)
for( i= 0; i< ThingList.size(); i++){
inputedThingCheck = ThingList.get(i).getInputedName();
//testInput is the input I know for a fact is inside arraylist
if(inputedThingCheck.equals(testInput)){
thingTotal = ThingList.get(i).getCount() + thingTotal;
}
}
我想知道如何让程序搜索每个事物对象,并将所有同名事物的计数加到总数中,同时跳过已经完成的事物
【问题讨论】:
-
解决此类问题的第一步通常是“使用真正的数据结构,从数据中满足您的需求”。一定要使用具有内部数组列表的类,但给它一个
insert(Thing),以便在插入时保持运行计数。这样一来,添加后无事可做,您只需向经理索要计数,它就会立即得到答案。