有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (6) 个答案

  1. # 1 楼答案

    /** ArrayList Elements Reverse Without Using Collections Reverse */
    public static void main(String s[]) {
    
            ArrayList<Integer> alOrig = new ArrayList<Integer>();
            alOrig.add(210);
            alOrig.add(213);
            alOrig.add(214);
            alOrig.add(216);
            alOrig.add(217);
    
            System.out.println("ArrayList Elements in Normal Order");
            Iterator alOrigItr = alOrig.iterator();
    
            while (alOrigItr.hasNext()) {
                System.out.println("" + alOrigItr.next());
            }
    
            System.out.println("ArrayList Elements in Reverse Order ");
    
            ArrayList<Integer> alRev = new ArrayList<Integer>();
    
            for (int i = alOrig.size(); i > 0; i--) {
                alRev.add(alOrig.size() - i, alOrig.get(i - 1));
            }
    
            for (Integer alRevI : alRev) {
    
                System.out.println("" + alRevI);
            }
    
        }
    
    }
    
  2. # 2 楼答案

    不需要反转收集,这可能会导致性能灾难(取决于大小)。最自然的JDK方式是使用listIterator

    for (ListIterator<String> it = list.listIterator(list.size()); it.hasPrevious();) {
      ...
    }
    
  3. # 3 楼答案

    for ( int i = logs.size() - 1; i >= 0; --i )
        // do something with logs.get( i )
        ;
    

    不要浪费时间来颠倒你可以按相反顺序迭代的东西

    更新:listIterator也可以按相反顺序使用,是一种更通用的解决方案:

    for ( ListIterator< Logs > lit = logs.listIterator( logs.size() ); lit.hasPrevious(); )
        // do something with lit.previous()
        ;
    
  4. # 4 楼答案

    使用Collections类的reverse方法反转列表。请注意,这将影响列表本身

    ArrayList logs = new ArrayList(); //Initialize this list or your
                                      //code won't compile.
    
    for(Logs log : getLogs()){           
        logs.add(log.getName();        
    }
    
    Collections.reverse(logs);
    

    如果您想要一个新列表,请创建一个新列表,使用addAll将所有元素添加到该列表中,最后将该列表反转

  5. # 5 楼答案

    尝试使用^{}

    ArrayList logs;
    for(Logs log : getLogs()){           
        logs.add(0,log.getName());        
    }
    

    这将始终将该元素作为第一个元素插入,而不是将其追加到列表的末尾,这样列表就会颠倒

  6. # 6 楼答案

    从Java5开始(至少,可能更早),Collections库中支持这一点

     Collections.reverse(logs);