当前位置: 首页 > 知识库问答 >
问题:

Java-根据一个数组的值对另一个数组排序?

欧阳学真
2023-03-14
[string2, string3, string1]
B.sort(function(a,b){return A[B.indexOf(a)] < A[B.indexOf(b)];});

共有1个答案

茅高卓
2023-03-14

在Java8中,您可以这样做

用一个lambda:

    String[] strings = new String[]{"string1", "string2", "string3"};
    final int[] ints = new int[]{40, 32, 34};

    final List<String> stringListCopy = Arrays.asList(strings);
    ArrayList<String> sortedList = new ArrayList(stringListCopy);
    Collections.sort(sortedList, (left, right) -> ints[stringListCopy.indexOf(left)] - ints[stringListCopy.indexOf(right)]);

或者更好地使用比较器:

    String[] strings = new String[]{"string1", "string2", "string3"};
    final int[] ints = new int[]{40, 32, 34};

    final List<String> stringListCopy = Arrays.asList(strings);
    ArrayList<String> sortedList = new ArrayList(stringListCopy);
    Collections.sort(sortedList, Comparator.comparing(s -> ints[stringListCopy.indexOf(s)]));
 类似资料:
  • 问题内容: 是否可以对看起来像这样的数组进行排序和重新排列: 匹配此数组的安排: 不幸的是,我没有任何要跟踪的ID。我将需要优先处理items-array,以使其尽可能接近sortingArr。 更新: 这是我正在寻找的输出: 任何想法如何做到这一点? 问题答案: 就像是: 这是一个较短的代码,但是会破坏数组:

  • 在 Java 中,如何根据另一个排序数组的索引顺序对数组进行排序?例如,如果我有: 我按升序对 arr2 进行排序 我希望另一个是: 我怎么能做到这是Java?我知道我会保存新的排序数组到新的实例。任何帮助,谢谢!

  • 我有两个整数数组,我试图根据另一个数组对第一个数组进行排序。 例如。和 b = {1,2,2,0,0, 在 B 中排序的值是 A 中每个整数的实值 排序后我期望的预期结果是: 这是我用的代码 它给出了我的输出:<code>a={2,3,1,0,0,6}和

  • 问题内容: 我有多个数组,我想根据其中一个的排序顺序对所有数组进行排序,如下所示: 我希望函数执行后,数组将如下所示: 问题答案: 您可以执行以下操作:首先根据键控数组的索引的索引对它们进行索引的值对它们进行排序,然后使用: 如果要在任何类型的集合上使它通用(但仍以与std lib集合算法相同的样式返回数组): 以及带有自定义比较器的版本:

  • 我有多个数组,我想根据其中一个数组的排序顺序对所有数组进行排序,如下所示: 我预计函数执行后的数组将如下所示:

  • 假设我有两个 NumPy 数组 注意:(中的值没有以任何方式排序。我选择这个例子是为了更好地说明这个例子)(这只是和的两个例子。和的值可以是任意多个不同的数字,可以有任意不同的数字,但是中的值总是和中的值一样多) 我想根据中的值有效地将数组拆分为子数组。 我想要的输出是 假设 从零开始并且没有排序而是分组,最有效的方法是什么? 注意:这个问题是这个问题的未排序版本:根据另一个数组的值(按升序排序)