gpt4 book ai didi

Java 打印基于位置

转载 作者:行者123 更新时间:2023-11-30 04:58:35 25 4
gpt4 key购买 nike

正在做作业,我被困住了。

假设我有一个颜色数组:

["blue", "orange", "green", "black", "red" ]

这些颜色出现在文本中。当颜色发生时,有另一个数组将行号存储在另一个数组(位置数组)中。

[17,4,5,8,8]

现在我想按升序行出现进行打印,因此输出为:

orange
green
black
red
blue

我使用 Arrays.sort() 对位置数组进行排序。我认为这应该使用位置来完成。

例如,对于打印橙色,排序数组与颜色在数组颜色上的位置存在关系。

你能给我指出一些方向吗?

当我开始学习 Java 时,这是尽可能最简单的方法。

最佳答案

  1. 您需要将索引相互关联。我建议您在类中执行此操作(可能是具有属性 PairString colorint line 类)。

    class Pair {
    public String color;
    public int line;
    public Pair(String color, int line) {
    this.color = color;
    this.line = line;
    }
    }
  2. 构建配对对象的数组(或 List<Pair> )。

    String[] colors = new String[] {"blue", "orange", "green", "black", "red"};
    int[] lines = new int[] { 17, 4, 5, 8, 8};

    List<Pair> pairs = new LinkedList<Pair>();
    for (int i = 0; i < colors.length; i++)
    pairs.add(new Pair(colors[i], lines[i]));
  3. Pair 的数组进行排序s 带有 Comparator使用Arrays.sort (或 Collection.sort )方法取决于您的 line属性。

    Collections.sort(pairs, new Comparator<Pair>() {
    public int compare(Pair p1, Pair p2) {
    return Integer.valueOf(p2.line).compareTo(p1.line);
    }
    });

    另一种选择是实现 Comparable<Pair>Pair .

  4. 使用循环打印数组

关于Java 打印基于位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com