如何在多个ArrayLists中对值进行排序?

3 java sorting arraylist

我有一个包含字母的Arraylist字母f r t d,还有two更多的Arraylists,其中一个存储row poistion了一封信,另一个存储col position了一封信.但按字母顺序排列Arraylist字母后(Collections.sort(letters))我怎样才能相应地对每个字母的行和col值进行排序?例如,如果字母drow = 4,col ==3然后在排序d后将在第一位并采用row和``col值f.如果字母得到它们rowcol值,我该怎么做呢?

鉴于:

ArrayList<Character> letters;
ArrayList<Integer> rows;
ArrayList<Integer> cols;
Run Code Online (Sandbox Code Playgroud)

片段:

Collections.sort(letters);
for(int i = 0; i < letters.size(); i++)
{
   System.out.println(letters.get(i).getChar() + rows.get(i) + col.get(i)
}
Run Code Online (Sandbox Code Playgroud)

rge*_*man 5

答案不是对每个存储每个字符的一个元素的单个数组进行排序.

创建自己的类以将3个关联的数据属性保存在一起,例如Letter.

执行以下操作之一:

  • 有类实现Comparable<Letter>,添加一个compareTo方法.然后有一个你可以打电话ArrayListLetters Collections.sort.
  • 创建另一个Comparator<Letter>使用compare方法实现的类.使用你ArrayListLetters,调用Collections.sort传入一个附加参数,该参数是你的一个实例Comparator.