当前位置:编程学习 > JAVA >>

求教一个问题,对MAP和LIST使用熟练的高手帮帮我,头疼很久了啊

这是数据:

这是显示:

首先介绍下这个需求的背景,由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!

求大神们帮帮忙啊!! --------------------编程问答-------------------- 图挂了,看不到 --------------------编程问答-------------------- 首先介绍下这个需求的背景,由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!

--------------------编程问答--------------------
引用 1 楼  的回复:
图挂了,看不到

来这个地址吧!谢谢了!tieba.baidu.com/p/1523180971
这里有图,帮帮忙,谢谢!

这是需求:

由于我们公司使用的是自己开发的框架,所以并没有使用SSH的任何知识,所有数据都是通过String[][] data=Utils.getData(sql);获得的。而且重要的一点是,这个系统是纯JSP编程,没有任何JAVA类的参与,我们经理的要求是在取得所有数据后(String二维数组),只能通过集合和循环的知识,把已经取到的数据组合成该显示的效果!
--------------------编程问答-------------------- Utils.getData(sql);这个方法执行完返回的是String二位数组吗 --------------------编程问答--------------------
引用 4 楼  的回复:
Utils.getData(sql);这个方法执行完返回的是String二位数组吗


是的,能帮我做一下吗?图在tieba.baidu.com/p/1523180971可以看到 --------------------编程问答-------------------- String [][] data = Utils.getData(sql);
for(int i=0;i<data[].length;i++){
   for(int j=0;j<data[i][].length;j++){

   }
}
拿二维数组处理 --------------------编程问答--------------------
引用 6 楼  的回复:
String [][] data = Utils.getData(sql);
for(int i=0;i<data[].length;i++){
   for(int j=0;j<data[i][].length;j++){

   }
}
拿二维数组处理


关键是怎么关联起来,P_ID作为键, VALUE怎么放。你能把数据组合成显示的那样吗?帮我实现一下吧 --------------------编程问答-------------------- 要不就JSTL 结合EL标签

--------------------编程问答--------------------
引用 8 楼  的回复:
要不就JSTL 结合EL标签


关键公司没用SHH框架,也没有用JSTL标签,以前他们做类似这样的项目,都是用集合和循环就能解决,关键靠怎么去组合这些数据,怎么正确存放MAP和LIST。我做了好几天了,也是用MAP和LIST,可总会出现一些问题,比如一个员工是某一个项目的项目经理,再给他赋一个Co-manager角色,就会只显示他的Co-manager角色,也就是在存MAP时,由于KEY重复导致VALUE被覆盖了。 --------------------编程问答-------------------- 你应该把上边的5个表,取出来的数据写成一个程序的初始数据,然后别人实现你的算法,你就列了一个表,别人也不知道,你取出来是什么东西,然后怎么处理。
也就是你提供数据模型,然后大家帮人看看怎么实现算法。 --------------------编程问答-------------------- for example
String[][] all_project = Utils.getData(sql);
Map<String, List<String[][]>> pjMap = new LinkedHashMap<String, List<String[][]>>();
for (String[] s : all_project) {
    if (! pjMap.containsKey(s[0])) {
        pjMap.put(s[0], new ArrayList<String[][]>());
    }
    pjMap.get(s[0]).add(s);
}

String[][] my_project = Utils.getData(sql);
Map<String, List<String[][]>> mpMap = new LinkedHashMap<String, List<String[][]>>();
for (String[] s : my_project) {
    if (! mpMap.containsKey(s[0])) {
        mpMap.put(s[0], new ArrayList<String[][]>());
    }
    mpMap.get(s[0]).add(s);
}

String[][] my_manager = Utils.getData(sql);
Map<String, List<String[][]>> mmMap = new LinkedHashMap<String, List<String[][]>>();
for (String[] s : my_manager) {
    if (! mmMap.containsKey(s[0])) {
        mmMap.put(s[0], new ArrayList<String[][]>());
    }
    mmMap.get(s[0]).add(s);
}

String[][] my_task = Utils.getData(sql);
Map<String, List<String[][]>> mtMap = new LinkedHashMap<String, List<String[][]>>();
for (String[] s : my_task) {
    if (! mtMap.containsKey(s[0])) {
        mtMap.put(s[0], new ArrayList<String[][]>());
    }
    mtMap.get(s[0]).add(s);
}

String[][] my_role = Utils.getData(sql);
Map<String, List<String[][]>> mrMap = new LinkedHashMap<String, List<String[][]>>();
for (String[] s : my_role) {
    if (! mrMap.containsKey(s[0])) {
        mrMap.put(s[0], new ArrayList<String[][]>());
    }
    mrMap.get(s[0]).add(s);
}

String[][] table = new String[pjMap.size()+1][4];
table[0][0] = "序号";
table[0][1] = "项目名称";
table[0][2] = "任务名称";
table[0][3] = "角色名称";
int index = 1;
StringBuilder[] buf = new StringBuilder[2];
for (int i=0; i<buf.length; i++) {buf[i] = new StringBuilder();}
List<String[][]> list = null;
for (Map.Entry<String, String[][]> e : pjMap.entrySet()) {
    table[index][0] = String.valueOf(index);  //序号
    table[index][1] = e.getValue().get(0)[1]; //项目名称

    buf[0].delete(0, buf[0].length());
    buf[1].delete(0, buf[1].length());
    if (mtMap.containsKey(e.getKey())) { //任务名称
         list = mtMap.get(e.getKey());
         for (String[][] s : list) {
             buf[0].append(s[1]).append("\n");
             buf[1].append("负责人").append("\n");
         }
         buf[0].delete(buf[0].length()-1, buf[0].length());
         table[index][2] = buf[0].toString();
    } else {
        table[index][2] = "无";
    }
    
    if (buf[1].length() > 0) {
        buf[1].delete(buf[1].length()-1, buf[1].length());
    else {
        if (mmMap.containsKey(e.getKey())) {
            buf[1].append("项目经理").append("/");
        }
        if (mp.containsKey(e.getKey())) {
            buf[1].append("参与者").append("/");
        }
        if (mr.containsKey(e.getKey())) {
            buf[1].append("Co-manager");
        }
    }
    table[index][3] = buf[1].toString();
    
    index++;
}




--------------------编程问答--------------------
引用 11 楼  的回复:
for example
Java code
String[][] all_project = Utils.getData(sql);
Map<String, List<String[][]>> pjMap = new LinkedHashMap<String, List<String[][]>>();
for (String[] s : all_project) {
    if (! pj……


非常感谢!!!我等会就对照着实现一下 --------------------编程问答-------------------- 建议你学一学<c: 标签 <c:forEach,基础的html标签应用,建议你下载一个W3c开发文档看一下。。。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,