繁体   English   中英

反转Java中的列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM