【问题标题】:Sort an Arraylist which contains 3 lists linked to each other对包含 3 个相互链接的列表的 Arraylist 进行排序
【发布时间】:2016-05-16 09:23:20
【问题描述】:

我有一个包含 3 个列表的 ArrayList。第一个包含字符串、第二个整数和第三个浮点数。 每个列表的第一个值相互关联,第二个等等。

List<List> calculation = new ArrayList<List>();
ArrayList<String>candidate = new ArrayList<String>();
ArrayList<Integer> frequency = new ArrayList<Integer>();
ArrayList<Float> score = new ArrayList<Float>();
calculation.add(candidate);
calculation.add(frequency);
calculation.add(score);

现在我想对双列表进行排序(升序或降序),当然其他两个列表中的值应该随着第三个列表的排序而改变。

我该怎么做?也许我的构造(包含三个列表的 Arraylist)不是最好的方法。我也经常使用其他方法;)

【问题讨论】:

  • 为什么不创建一个包含候选、频率和分数的类,并对该类的单个 ArrayList 进行排序?
  • 您可以对所有这些进行排序,而不是只对分数进行排序,例如,当您在嵌套的 for 循环中进行排序时,您可以简单地交换其他数组中的值,而不是仅交换您的数组中的值,如果你需要我可以给你更详细的解答
  • 我已经在考虑这个,但我想使用一些现有的排序功能;)我认为在你的建议中,我必须编写自己的排序方法或覆盖现有的......

标签: java list sorting arraylist


【解决方案1】:

类似的问题已经解决了。

请检查此链接。 Sort several 'linked' Lists

如果这对你有帮助,请告诉我。

【讨论】:

    【解决方案2】:

    您需要一个总体数据结构来保持列表重新排序时的凝聚力。

    我个人会将它们移动到 Apache Triple 列表中,然后您可以定义一个 Comparator 或类似的。

    【讨论】:

      【解决方案3】:

      我选择加班的方式。很好用,谢谢大家!

      public class Result {
      
          String candidate;
          int frequency;
          double score;
      
          public Result (String candidate, int frequency, double score){
              this.candidate=candidate;
              this.frequency=frequency;
              this.score=score;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-08-05
        • 2021-12-27
        • 2012-07-07
        • 2012-11-07
        • 2015-04-06
        • 2020-04-24
        • 2020-09-09
        • 1970-01-01
        相关资源
        最近更新 更多