Java 对对象的项进行分组(聚集)
我有一个对象列表,具有以下特征:Java 对对象的项进行分组(聚集),java,list,arraylist,Java,List,Arraylist,我有一个对象列表,具有以下特征: Class Object{ String gender; String state; int quantity; int Salary; } List<Object> myList=new ArrayList<Object>; 类对象{ 字符串性别; 字符串状态; 整数; 国际工资; } 列表myList=新的ArrayList; 作为列表的输入,我有以下内容: 作为输出,我只想保留一个具有相同性别和相同状态的对象
Class Object{
String gender;
String state;
int quantity;
int Salary;
}
List<Object> myList=new ArrayList<Object>;
类对象{
字符串性别;
字符串状态;
整数;
国际工资;
}
列表myList=新的ArrayList;
作为列表的输入,我有以下内容:
作为输出,我只想保留一个具有相同性别和相同状态的对象,在同一时间内求和数量和salsary对应值,如下所示:
我的问题是如何循环遍历myList,找到具有相同性别和相同状态的对象,只保留其中一个对象,并将数量和工资相加???首先,我将您的类重命名为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
类MyObject{
字符串性别;
字符串状态;
整数;
国际工资;
}
List myList=new ArrayList();
List stateAndGender=新建ArrayList();
List finalList=new ArrayList();
//在此处添加对象
对于(MyObject mO:myList){
字符串s=mO.getGender();
s+=”,“+mO.getState();
如果(stateAndGender.indexOf)=-1)
{
MyObject fO=新的MyObject();
fO.setGender(mO.getGender());
fO.setState(mO.getState());
州和性别。添加(s);
int Qua=mO.getQuantity();
int Sal=mO.getSalary();
for(int i=0;iYou实际上还没有问任何问题。到目前为止,你尝试了什么,结果如何?@ScottHunter我编辑了这篇文章,你现在明白了吗?你需要一个for
循环…你能更具体一点吗??@scrapedColafor(对象a:MyList){//treatment}我不知道如何处理输出,我需要的是我的列表,而不是3个列表above@hamzaspecter好的,我会添加一个解决方案,给我一分钟!