首先,我将您的类重命名为MyObject,因为Object是基类Java类。现在它的休息 - 你可以使用你已经发现做出来的性别和状态组合的伪指数和总结值的列表的其余部分如下:
Class MyObject{
String gender;
String state;
int quantity;
int Salary;
}
List<MyObject> myList=new ArrayList<MyObject>();
List<String> stateAndGender = new ArrayList<String>();
List<MyObject> finalList = new ArrayList<MyObject>();
// add objects here
for(MyObject mO : myList){
String s = mO.getGender();
s+="," + mO.getState();
if(stateAndGender.indexOf(s)==-1)
{
MyObject fO = new MyObject();
fO.setGender(mO.getGender());
fO.setState(mO.getState());
stateAndGender.add(s);
int Qua = mO.getQuantity();
int Sal = mO.getSalary();
for(int i=0; i<myList.size(); i++)
{
if(String t = myList.get(i).getGender()+","+myList.get(i).getGender() == s)
Qua += myList.get(i).getQuantity();
Sal += myList.get(i).getSalary();
}
fO.setQuantity(Qua);
fO.setSalary(Sal);
finalList.add(fO);
}
}
// Then return finalList
上面的代码假设你已经为你创建的类的字段设置了适当的getter,并且你的性别和状态不包含逗号,否则你需要调整代码。
更新:现在你得到一个MyObject类型的列表,其中包含正确的值!这不是最初的那个,而是一个叫finalList
的。
你还没有真正问过问题。到目前为止你尝试过什么,它是如何缩短的? –
@ScottHunter我已编辑帖子,你现在明白了吗? –
你需要一个'for'循环... – scrappedcola