发现一个问题
stack是先进后出,但当用于<C:forEach>的items时,发现还是从栈底开始输出。也就是表现为先进先出。
如按时间顺序输入,用<C:forEach>输出时,还是按时间顺序从小到大往下排,本来先插入的是时间小的,
应该处于栈底,应该后输出。输出结果如下图

解决方案 »

  1.   

    有谁知道c:foreach的实现原理吗?
      

  2.   

    c:foreach   就是用for(element : array)实现的啊!
    c:foreach  的 begin end step这些属性可以控制你的输出方式
    begin :开始下标
    end :结束下标
    step :步长     ()
      

  3.   

    Stack s = new Stack();
    String arg = "我是";
    int i = 1;
    s.add(arg+i);
    i++;
    s.add(arg+i);
    i++;
    s.add(arg+i);
    i++;
    s.add(arg+i);
    i++;
    System.err.println(s);
    Object[] o =  s.toArray();

    for (int j=0;j<o.length;j++){
    System.err.println(o[j]);
    //System.err.println(s.pop());
    }
      

  4.   

    这是c:forEach的原理吗?也就是先转化为数组。