我有一个包含字母的Arraylist字母f r t d,还有two更多的Arraylists,其中一个存储row poistion了一封信,另一个存储col position了一封信.但按字母顺序排列Arraylist字母后(Collections.sort(letters))我怎样才能相应地对每个字母的行和col值进行排序?例如,如果字母d有row = 4,col ==3然后在排序d后将在第一位并采用row和``col值f.如果字母得到它们row和col值,我该怎么做呢?
鉴于:
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)
答案不是对每个存储每个字符的一个元素的单个数组进行排序.
创建自己的类以将3个关联的数据属性保存在一起,例如Letter.
执行以下操作之一:
Comparable<Letter>,添加一个compareTo方法.然后有一个你可以打电话ArrayList的Letters Collections.sort.Comparator<Letter>使用compare方法实现的类.使用你ArrayList的Letters,调用Collections.sort传入一个附加参数,该参数是你的一个实例Comparator.