java - 按值获取列表的顺序

标签 java list sorting

我有一个具有不同值的列表顺序:

List<Double> values = new LinkedList<Double>();
values.add(0.1);
values.add(0.8);
values.add(0.3);

根据给定列表的值的顺序获取索引列表的最快方法是什么,在本例中为 {1, 3, 2},因为 0.1 是最小的,0.2 是第二小的,0.8 是第三小的?

最佳答案

一种获取这个索引列表的方法,仅使用jdk5

    List<Float> positions = new ArrayList<Float>();
    List<Integer> indexes = new ArrayList<Integer>();
    positions.add(0.1f);
    positions.add(0.8f);
    positions.add(0.3f);

    // copy float elements to another List, so to keep the order
    List<Float> sortedPositions = new ArrayList<Float>();
    Collections.copy(sortedPositions, positions);
    Collections.sort(sortedPositions);

    for (Float position : positions) {
        indexes.add(sortedPositions.indexOf(position));
    }

    for (Integer index : indexes) {
        System.out.print(index + ",");
    }
    // prints 1,3,2,

关于java - 按值获取列表的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23428625/

相关文章:

java - Spring根据请求值使用不同的bean

java - 使用适配器时<和>符号有什么用?

java - 等待两个 Futures/Runnables/Callables 中的任何一个完成?

python - 列出字典值的理解

list - Netlogo:如何为列表中的每只海龟创建链接?

python - 如何在 QTableWidget 中自定义排序行为

java - 您真的可以过滤掉使用您的应用程序的平板电脑吗?

python获取列表列表中的最后5个元素

Java:使用方法和比较器将一个数组排序到另一个数组

Django 管理员 : how to sort by one of the custom list_display fields that has no database field