java - 尝试反转数组列表时遇到问题

标签 java arrays list collections

我正在尝试反转投票数组列表以产生偏好(即投票 2,4,1,3,反转后为 3,1,4,2。索引偏好为 3)。我相信这可以通过集合来完成,但列表是不同类型的(投票类型)。当我无法在投票上使用集合方法时,只需要一些关于如何排序此偏好顺序的指导。

    public Vote invertVote() {

        VoteList invVote = (VoteList) ((Vote) vote).copyVote();

        Iterator<Integer> iter = invVote.iterator();
            while(iter.hasNext()){
            iter.next();
            Collections.reverse(invVote);

    }


    return invVote;


}

注意投票是代表单次投票的整数集合。 VoteList 实现投票。 copyVote() 用于创建投票的深拷贝,以便不更改它并返回新的 Vote 对象。在 Collections.reverse(invVote) 期间仍然出现错误

最佳答案

是的,这可以使用集合来完成,您只需调用方法 Collections.reverse ...

public static void reverse(List<?> list)

Reverses the order of the elements in the specified list.

This method runs in linear time.

示例:

public static void main(String[] args) {
    Random rnd = new Random();
    List<Integer> myInteger = new ArrayList<Integer>();
    for (int i = 0; i < 10; i++) {
        myInteger.add(rnd.nextInt(10));
    }
    // the list
    System.out.println(myInteger);
    // the list sorted
    Collections.sort(myInteger);
    System.out.println(myInteger);
    // the list inverted
    Collections.reverse(myInteger);
    System.out.println(myInteger);
}
<小时/>

在您的情况下,使用 Votes 类而不是整数,并使该类实现您定义排序逻辑的可比较接口(interface)....

关于java - 尝试反转数组列表时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36592653/

相关文章:

Java Streams - 从其他两个列表中获取 "symmetric difference list"

java - Junit 测试用例中未知主机的 GET 请求发生 I/O 错误

java - 在 Java 中解析 XML 字符串的最佳方式?

javascript - 将 Array 转换为 Object 时奇怪的数据在 javascript 中丢失

string - 验证文本是否只有字母和空格

java - 元素在 Arraylist 的迭代过程中丢失

java - 在 PHP 中寻找像简单 html dom 一样的 java html 解析器

python - 如何将基于列表的代码转换为基于numpy数组的代码?

PHP 使用 uasort 对数组进行排序

c# - C# 中两种不同类型的列表