【发布时间】:2015-11-12 22:28:19
【问题描述】:
快速提问。假设我有一个函数 total(列表列表),并且我有一个 MyObject 类,它有一个 String 和一个 int 显示在下面,我想在我的 total 方法中比较两个不同的对象字符串。如果它们相同,则将它们的值相加。否则,什么都不做。
例如数据是 {[约翰娜,200],[杰克,205],[约翰娜,100],[杰克,50]};
输出应该看起来像 {[约翰娜,300],[杰克,255]};
public static class MyObject {
int value;
String name;
public MyObject(String nm, int val)
{
name = nm;
value = val;
}
}
public void total(List<MyObject> list) {
List<MyObject> newList = new ArrayList<MyObject>();
Collections.sort(list);
Iterator<Order> ItrL = list.iterator();
int index = 0;
while(ItrL.hasNext())
{
MyObject compare = ItrL.next();
Iterator<MyObject> ItrR = list.listIterator(index);
index++;
while (cmp.name.equals(ItrR.next().name)))
newList.add(new MyObject(cmp.name, cmp.value + ItrR.value));
}
}
【问题讨论】:
-
Iterator<Order>中的Order是什么?还有,total方法在MyObject类关闭后写在哪个类中? -
如果您不提供提供总排序的
compareTo,Collections.sort()如何工作??? -
我已经有了这些功能,甚至是迭代器。只是想知道是否可以在不重复已经调用的项目的情况下比较两件事?我还修复了一些不正确名称和类型的代码