2016-05-16 38 views
0

我有一个包含3个链表的ArrayList。第一个包含String,secound整数和第三个浮点数。 每个列表的第一个值是相互关联的,secound等等。现在对包含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)不是最好的方法。我也常常为其他apparoaches;)

+4

为什么不创建一个包含候选项,频率和分数的类,并对该类的单个ArrayList进行排序? – Eran

+0

您可以按照所有这些,而不是唯一的比分的,对于为例,当你for循环里面做你的嵌套的排序,你可以简化掉也值中的其他数组,而不是只有一个在你的,如果你需要我可以给你更详细的答案 –

+0

我已经在想这件事,但我想用一些现有的排序功能;)我认为在你的建议中,我将不得不编写自己的排序方法或覆盖现有的... – Tobi123

回答

0

你需要一个总体的数据结构列表重新排序,以保持凝聚力。

我个人它们移动到Apache的Triple的列表,然后你可以定义一个比较以上类似。

0

我选择带有额外的类的方式。工作正常,谢谢你们!

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; 
    } 
}