列表中是否有任何类型的反向迭代器,仅用于反向列表?(首选Java8流解决方案)

列表中是否有任何类型的反向迭代器,仅用于反向列表?(首选Java8流解决方案),java,collections,java-8,Java,Collections,Java 8,我想知道在列表实现中是否有某种反向迭代器(比如c++),比如ArrayList。i、 我想从列表的末尾迭代,而不是从头开始 有Java8流解决方案吗?在java中有列表迭代器 //替换适当的类型。 ArrayList a=新的ArrayList(); //将元素添加到列表中。 //生成一个迭代器。在最后一个元素之后开始。 ListIterator li=a.ListIterator(a.size()); //反向迭代。 while(li.hasPrevious()){ System.out.p

我想知道在列表实现中是否有某种反向迭代器(比如c++),比如
ArrayList
。i、 我想从列表的末尾迭代,而不是从头开始


有Java8流解决方案吗?

在java中有列表迭代器

//替换适当的类型。
ArrayList a=新的ArrayList();
//将元素添加到列表中。
//生成一个迭代器。在最后一个元素之后开始。
ListIterator li=a.ListIterator(a.size());
//反向迭代。
while(li.hasPrevious()){
System.out.println(li.previous());
}

在java中有列表迭代器

//替换适当的类型。
ArrayList a=新的ArrayList();
//将元素添加到列表中。
//生成一个迭代器。在最后一个元素之后开始。
ListIterator li=a.ListIterator(a.size());
//反向迭代。
while(li.hasPrevious()){
System.out.println(li.previous());
}

是的,java中有一个反向迭代选项。下面的代码可以正常工作

ArrayList<Integer> al = new ArrayList<>();
al.add(1);
al.add(2);
al.add(3);
al.add(4);

ListIterator<Integer> itr = al.listIterator(al.size());

System.out.println("Printing from last element ");
while (itr.hasPrevious()) {
    System.out.println(itr.previous());
}
ArrayList al=new ArrayList();
al.添加(1);
al.添加(2);
al.添加(3);
al.添加(4);
ListIterator itr=al.ListIterator(al.size());
System.out.println(“从最后一个元素打印”);
while(itr.hasPrevious()){
System.out.println(itr.previous());
}

是的,java中有一个反向迭代选项。下面的代码可以正常工作

ArrayList<Integer> al = new ArrayList<>();
al.add(1);
al.add(2);
al.add(3);
al.add(4);

ListIterator<Integer> itr = al.listIterator(al.size());

System.out.println("Printing from last element ");
while (itr.hasPrevious()) {
    System.out.println(itr.previous());
}
ArrayList al=new ArrayList();
al.添加(1);
al.添加(2);
al.添加(3);
al.添加(4);
ListIterator itr=al.ListIterator(al.size());
System.out.println(“从最后一个元素打印”);
while(itr.hasPrevious()){
System.out.println(itr.previous());
}

另一种可以反转列表的方法是使用
集合。反转

ArrayList<Integer> a = new ArrayList<>(); // assign some values here
a.forEach(System.out::println); // actual order
Collections.reverse(a);
a.forEach(System.out::println); // reverse order
ArrayList a=新的ArrayList();//在此处指定一些值
a、 forEach(System.out::println);//实际订货
收款。反向(a);
a、 forEach(System.out::println);//逆序

另一种可以反转列表的方法是使用
集合。反转

ArrayList<Integer> a = new ArrayList<>(); // assign some values here
a.forEach(System.out::println); // actual order
Collections.reverse(a);
a.forEach(System.out::println); // reverse order
ArrayList a=新的ArrayList();//在此处指定一些值
a、 forEach(System.out::println);//实际订货
收款。反向(a);
a、 forEach(System.out::println);//逆序

所有标准java api类都记录在Javadoc
IntStream.rangeClosed(1,list.size()).map(i->list.size()-i).mapToObj(list::get).iterator()中。
也许你的答案是对的,但你能解释一下吗,太长了,不容易理解。:-)@Shmosel只需使用Guava的
Lists.reverse()
。所有标准java api类都记录在Javadoc
IntStream.rangeClosed(1,list.size()).map(i->list.size()-i).mapToObj(list::get).iterator()
中。也许你的答案是对的,但你能解释一下吗,太长了,让人难以理解。:-)@shmosel只需使用番石榴的
列表。reverse()
。虽然你的答案是正确的,但我想看看是否有优雅的Java8解决方案:-)让我们再等一段时间虽然你的答案是正确的,但我想看看是否有优雅的Java8解决方案:-)让我们再等一段时间