java List分组问题

来源:互联网  时间:2016/6/29 13:31:45

关于网友提出的“ java List分组问题”问题疑问,本网通过在网上对“ java List分组问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: java List分组问题
描述:

TMallGoods g = tmgSer.findAttachmentById(goods.getId()); Map map = new HashMap();
for (TMallAttachment att : g.getAttachmentList()) { // 排序字段做key String key = String.valueOf(att.getSort()); if (map.containsKey(key)) { TMallAttachment attObj = map.get(key);

/> } else {
TMallAttachment attObj = new TMallAttachment(); attObj.setFileName(goods.getGoodsName());
attObj.setPath(att.getPath());
/> attObj.setElementName(att.getElementName()); map.put(String.valueOf(att.getSort()), attObj); }
} 写到这里没四路了,我是想通过LIST分组,list里面有六个元素,假如ID相同的就放到一个对象里面,对象里面是属性1,2,3,就是ID相同的三条数组放在一个对象的属性一,属性2,属性3里面,六个元素装到两个动态的对象里面去,即最后结果是list有两个对象


解决方案1:

写了个例子,不知道这个是不是你想要的


package com.test; import java.util.ArrayList; import java.util.Collections;
import java.util.Comparator; import java.util.List; public class Test { public static void main(String args[]) throws Exception{
/> List list = new ArrayList(); Module m1 = new Module(1);
Module m2 = new Module(1);
Module m3 = new Module(1); Module m4 = new Module(2); Module m5 = new Module(2);
/> Module m6 = new Module(3); list.add(m1); list.add(m2); list.add(m3);
list.add(m4);
list.add(m5); list.add(m6); Collections.sort(list, new ModuleComparator()); int count = 0;
Domain domain = null; Module lastM = null; List domains = new ArrayList(); for(int i = 0; i < list.size(); i++){
if(i == 0){
domain = new Domain(); domains.add(domain);
lastM = list.get(i); if(count == 0){ domain.setModule1(list.get(i));
/> count++;
} }else{ Module thisM = list.get(i); if(lastM != null){ if(thisM.getId() == lastM.getId()){
if(count == 0){
domain = new Domain();
domains.add(domain); domain.setModule1(thisM); count++; }else if(count == 1){
domain.setModule2(thisM);
count++; }else{ domain.setModule3(thisM); count = 0; } }else { count = 1; domain = new Domain();
lastM = thisM;
domain.setModule1(thisM); domains.add(domain); } } } } } }
class Domain{ private Module Module1;  private Module Module2;  private Module Module3; public Module getModule1() {
return Module1; } public void setModule1(Module module1) { Module1 = module1; } public Module getModule2() {
return Module2;
} public void setModule2(Module module2) { Module2 = module2;
}
public Module getModule3() {
return Module3;
}
public void setModule3(Module module3) { Module3 = module3; } class Module{
private int id;
public Module(int id) { super(); this.id = id; } public int getId() { return id; } public void setId(int id) {
this.id = id;<> }<> } class ModuleComparator implements Comparator{ @Override
public int compare(Module o1, Module o2) { return o1.getId() - o2.getId(); } }

上一篇java 文件不报错 但是里面的类报错,类型报错
下一篇求助webservice调用的问题?
明星图片
相关文章
《 java List分组问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)