[英]Reverse a List in Java
为什么这个用于在 java 中反转列表的代码不能正常工作?
import java.util.List;
public class Main{
public static List<Integer> reverseArray(List<Integer> a){
int n = a.size();
int temp = 0;
for (int i = 0; i < n/2; i++){
temp = a.get(n-1);
a.set(n-1, a.get(i));
a.set(i, temp);
n--;
}
return a;
}
}
我不会使用这样的实现,因为您正在破坏参数。 如果您要返回一个列表,请创建一个新列表。 任何使用此类函数的人都会假设他们的源列表将保持不变,但在您的实现中,这是不正确的。 做更多这样的事情:
public static <T> List<T> reverse(List<T> list) {
List<T> reverse = new ArrayList<>();
for (int i = list.size() - 1; i >= 0; i--) {
reverse.add(list.get(i));
}
return reverse;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.