//类
public class MyObject {
private String objectId = new String();
private String objectName = new String();
private String objectSex = new String();
}
//将元素插入到集合中
List<MyObject> ll = new ArrayList<MyObject>();
MyObject m1 = new MyObject();
m1.setObjectId("1");
m1.setObjectName("test1");
m1.setObjectSex("3");
MyObject m2 = new MyObject();
m2.setObjectId("12");
m2.setObjectName("test2");
m2.setObjectSex("4");
MyObject m3 = new MyObject();
m3.setObjectId("1");
m3.setObjectName("test3");
m3.setObjectSex("5");
MyObject m4 = new MyObject();
m4.setObjectId("12");
m4.setObjectName("test4");
m4.setObjectSex("6");//通过比较ID 将他们分组后输出 请问该如何实现 元素不能丢失求教在线急等……
public class MyObject {
private String objectId = new String();
private String objectName = new String();
private String objectSex = new String();
}
//将元素插入到集合中
List<MyObject> ll = new ArrayList<MyObject>();
MyObject m1 = new MyObject();
m1.setObjectId("1");
m1.setObjectName("test1");
m1.setObjectSex("3");
MyObject m2 = new MyObject();
m2.setObjectId("12");
m2.setObjectName("test2");
m2.setObjectSex("4");
MyObject m3 = new MyObject();
m3.setObjectId("1");
m3.setObjectName("test3");
m3.setObjectSex("5");
MyObject m4 = new MyObject();
m4.setObjectId("12");
m4.setObjectName("test4");
m4.setObjectSex("6");//通过比较ID 将他们分组后输出 请问该如何实现 元素不能丢失求教在线急等……
12 test2 4
. . . .
要这样在页面显示嘛?
ll.add(m2);
ll.add(m3);
ll.add(m4);
这几个操作你还没有做呢啊。
for (MyObject m : ll)
{
System.out.println(m); //MyObject重新toString()方法。
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;public class TestGroup { /**
* @param args
*/
public static void main(String[] args) {
List<MyObject> ll = new ArrayList<MyObject>(); MyObject m1 = new MyObject();
m1.setObjectId("1");
m1.setObjectName("test1");
m1.setObjectSex("3");
MyObject m2 = new MyObject();
m2.setObjectId("12");
m2.setObjectName("test2");
m2.setObjectSex("4");
MyObject m3 = new MyObject();
m3.setObjectId("1");
m3.setObjectName("test3");
m3.setObjectSex("5");
MyObject m4 = new MyObject();
m4.setObjectId("12");
m4.setObjectName("test4");
m4.setObjectSex("6"); ll.add(m1);
ll.add(m2);
ll.add(m3);
ll.add(m4); Map<String, List<MyObject>> group = new LinkedHashMap<String, List<MyObject>>(); for(int i = 0; i < ll.size(); i++) {
String id = ((MyObject) ll.get(i)).getObjectId(); if(group.containsKey(id)) {
group.get(id).add(ll.get(i));
}
else {
List<MyObject> list = new ArrayList<MyObject>();
list.add(ll.get(i));
group.put(id, list);
}
} Iterator<String> it = group.keySet().iterator(); while(it.hasNext()) {
String id = it.next();
Iterator<MyObject> itGroup = group.get(id).iterator();
System.err.println("group: " + id); while(itGroup.hasNext()) {
System.err.println("\tinfo: " + itGroup.next());
}
}
} static class MyObject {
private String objectId; private String objectName; private String objectSex; public String getObjectId() {
return objectId;
} public void setObjectId(String objectId) {
this.objectId = objectId;
} public String getObjectName() {
return objectName;
} public void setObjectName(String objectName) {
this.objectName = objectName;
} public String getObjectSex() {
return objectSex;
} public void setObjectSex(String objectSex) {
this.objectSex = objectSex;
} public String toString() {
return "objectId = " + objectId + ", objectName = " + objectName
+ ", objectSex = " + objectSex;
}
}
}
group: 1
info: objectId = 1, objectName = test1, objectSex = 3
info: objectId = 1, objectName = test3, objectSex = 5
group: 12
info: objectId = 12, objectName = test2, objectSex = 4
info: objectId = 12, objectName = test4, objectSex = 6
可以通过重写compare方法现实现
对象间是通过ID进行比较的