java十个整数相反顺序_可以为每个循环在java中以相反的顺序做一个?

不要使用Collections.reverse方法,它实际上反转原始列表到位。如果你使用它:

错误的方法!

Collections.reverse(new ArrayList(stringList))

为了避免修改原始,这返回一个新的列表,其中原始列表的元素以相反的顺序被复制到其中,并且对于原始列表的大小具有O(n)性能和空间要求。

作为一个更有效的解决方案,你可以写一个类,它提供了一个反转视图的列表作为一个迭代的通用。您的类返回的迭代器将使用装饰列表的ListIterator以相反的顺序遍历元素。

例如:

public class Reversed implements Iterable {

private final List original;

public Reversed(List original) {

this.original = original;

}

public Iterator iterator() {

final ListIterator i = original.listIterator(original.size());

return new Iterator() {

public boolean hasNext() { return i.hasPrevious(); }

public T next() { return i.previous(); }

public void remove() { i.remove(); }

};

}

public static Reversed reversed(List original) {

return new Reversed(original);

}

}

你会使用它像:

import static Reversed.reversed;

...

List someStrings = getSomeStrings();

for (String s : reversed(someStrings)) {

doSomethingWith(s);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值