如何从数组列表中获取所需的两个数字组合?

How to get the required combination of two numbers from an arraylist?

我有一些元素的 ArrayList path = [1, 2, 5, 7]。现在我想从这些元素中获取值,例如:

1,2 
2,5
5,7 

我为此使用了列表迭代器,但我得到的是:

1,2 
2,2     
5,7 
7,7

我看过这个回答: how to get all combination of an arraylist? 但我不需要像这样的所有组合。

我的代码是:

public class iterator {

public static void main(String[] args){
    ArrayList<String> path=new ArrayList<>();
    path.add("1");
    path.add("2");
    path.add("5");
    path.add("7");

    System.out.println(path);
    ListIterator<String> itr =  path.listIterator();  
    while(itr.hasNext())
    {
        System.out.println(itr.next()+ "," + itr.next());
        System.out.println(itr.previous()+ "," + itr.next());
    }

}

}

我的问题是我怎样才能得到我需要的结果?

for (int i = 0; i < path.size() - 1; i++) {
    System.out.println(path.get(i) + "," + path.get(i + 1));
}

您可以尝试使用带有计数器的传统 for 循环来实现此目的:

for (int i = 0; i < path.size() - 1; i++) {
    System.out.println(path.get(i) + ", " + path.get(i+1));
}

问题是 .next() 获取下一个元素 并且 前进光标。要使用您的 ListIterator,您可以这样做:

while (itr.nextIndex() + 1 < path.size()) {
    System.out.println(itr.next() + "," + itr.next());
    itr.previous(); // back up 1 to get the duplicate
}