我有一个list,里面装了很多对象,就是可以操作的菜单的对象,这些对象有一些的parentId是相同的,现在我想把list里面的parentId相同的分类,应该怎么做?很郁闷啊,这是我贴的代码
for(int i=0;i<allList.size();i++) {
childList.add(allList.get(i));
for(int j=i+1;j<allList.size();) {
if(allList.get(i).getMenuParentid().equals(allList.get(j).getMenuParentid())) {
childList.add(allList.get(j));
allList.remove(j);
j--;
}
}
for(int m=0;m<childList.size();m++) {
System.out.println(i+" parentId "+childList.get(m).getMenuParentid());
}
allList.remove(i);
i--;
list.add(childList);
System.out.println("第"+i+1+"次循环remove后"+allList.size());
}
谢谢大家了,帮帮我
for(int i=0;i<allList.size();i++) {
childList.add(allList.get(i));
for(int j=i+1;j<allList.size();) {
if(allList.get(i).getMenuParentid().equals(allList.get(j).getMenuParentid())) {
childList.add(allList.get(j));
allList.remove(j);
j--;
}
}
for(int m=0;m<childList.size();m++) {
System.out.println(i+" parentId "+childList.get(m).getMenuParentid());
}
allList.remove(i);
i--;
list.add(childList);
System.out.println("第"+i+1+"次循环remove后"+allList.size());
}
谢谢大家了,帮帮我
解决方案 »
- hibernate 懒加载简单属性
- spring连接数据库的时候The processing instruction must begin with the name of the target
- 100分 ajax编辑器 Aptana 语法提示 问题?
- 求一java正则~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 二维数据的创建
- 为什么在tomcat3.0下可以访问的struts应用,部署到5.5下无法访问???
- Struts+eclipse开发的WEB应用脱机浏览时TOMCAT发生java.net.unknownhostException
- 实体BEAN的外键关系问题,冰天雪地裸跪求解
- Internationlization problem
- 怎样启动RMI服务
- 自己封装了一个检验码生成的类,希望大家喜欢!
- actio
类 Arrays
sort
public static <T> void sort(T[] a,
Comparator<? super T> c)
java.util.Comparator;
使用以上2类可实现List根据对象中的属性排序.
Set<Integer> parentIds = new HashSet<Integer>();
for(int i=0;i<allList.size();i++){
parentIds(allList.get(i).getParentId());
}
//总的分类,里面是每个parentId的分类;
ArrayList categorys = new ArrayList();
for(Integer i:parentIds){
//以parentid=i的分类;
List category = new ArrayList();
for(int j=0;j<allList.size();j++){
if(i == allList.get(i).getParentId()){
category.add(allList.get(j));
}
}
}
import java.util.Random;public class ListTest { static class MenuItem {
private String itemid = ""; private String menuParentid = ""; /**
* @return the itemid
*/
public String getItemid() {
return itemid;
} /**
* @param itemid
* the itemid to set
*/
public void setItemid(String itemid) {
this.itemid = itemid;
} /**
* @return the menuParentid
*/
public String getMenuParentid() {
return menuParentid;
} /**
* @param menuParentid
* the menuParentid to set
*/
public void setMenuParentid(String menuParentid) {
this.menuParentid = menuParentid;
} public String toString() {
StringBuffer ret = new StringBuffer();
ret.append("menuParentid=" + menuParentid + ",itemid=" + itemid);
return ret.toString();
} } public static void main(String[] args) { ArrayList<MenuItem> allList = new ArrayList<MenuItem>();
Random rdm = new Random(System.currentTimeMillis());
// prepare allList
System.out.println("最初的allList:");
for (int i = 0; i <= 100; i++) {
MenuItem item = new MenuItem();
item.setItemid(Integer.toString(i));
item.setMenuParentid(Integer.toString(rdm.nextInt(3)));
allList.add(item);
System.out.println(item.toString());
}
ArrayList<ArrayList<MenuItem>> list = new ArrayList<ArrayList<MenuItem>>();
int turn = 0;
for (int i = 0; i < allList.size(); i++,turn++) {
ArrayList<MenuItem> childList = new ArrayList<MenuItem>();
childList.add(allList.get(i));
for (int j = i + 1; j < allList.size();) {
if (allList.get(i).getMenuParentid().equals(
allList.get(j).getMenuParentid())) {
childList.add(allList.get(j));
allList.remove(j);
// j--;
} else {
j++;
}
}
System.out.println("第" + (turn + 1) + "次循环产生的childList:");
for (int m = 0; m < childList.size(); m++) {
System.out.println(childList.get(m).toString());
}
allList.remove(i);
i--;
list.add(childList);
System.out.println("第" + (turn + 1) + "次循环remove后" + allList.size());
}
}
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;public class TestList { public static void main(String[] args) {
List tmpList = new ArrayList();
tmpList.add(new Bean1("1", "a1"));
tmpList.add(new Bean1("1", "a2"));
tmpList.add(new Bean1("1", "a3"));
tmpList.add(new Bean1("2", "b1"));
tmpList.add(new Bean1("2", "b2")); Map m = new HashMap();
Bean1 b1;
Bean2 b2;
String key;
for (Iterator iter = tmpList.iterator(); iter.hasNext();) {
b1 = (Bean1) iter.next();
b2 = (Bean2) m.get(b1.getParenid());
if (b2 != null) {
b2.getTlist().add(b1);
} else {
m.put(b1.getParenid(), new Bean2(b1.getParenid(), b1));
}
} for (Iterator iter = m.keySet().iterator(); iter.hasNext();) {
key = iter.next().toString();
System.out.println("分类" + key);
b2 = (Bean2) m.get(key);
for (Iterator j = b2.getTlist().iterator(); j.hasNext();) {
Bean1 bb1 = (Bean1) j.next();
System.out.println(bb1.getParenid() + " " + bb1.getName());
} } }
}class Bean1 {
public String parenid;
public String name; Bean1(String pid, String name) {
this.parenid = pid;
this.name = name;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getParenid() {
return parenid;
} public void setParenid(String parenid) {
this.parenid = parenid;
}
}class Bean2 {
private String key;
private List tlist = new ArrayList(); public Bean2(String parenid, Object element) {
this.key = parenid;
this.tlist.add(element);
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public List getTlist() {
return tlist;
}
public void setTlist(List tlist) {
this.tlist = tlist;
}
}
java.util.Comparator;这两个类怎么实现?