让我们说我有一个包含以下内容的数组列表: id,x_coor,y_coor,signal。
id,x_coor和y_coor的值来自数据库,信号值是随机生成的。
我的问题是如何根据信号重新排序列表的索引 例如:
[0] -> 1, 200, 100, 41
[1] -> 2, 300, 100, 81
[2] -> 3, 100, 300, 20
.
.
.
我需要该列表
[0] -> 3, 100, 300, 20
[1] -> 1, 200, 100, 41
[2] -> 2, 300, 100, 81
.
.
.
有人可以帮忙吗?我是java的新手
答案 0 :(得分:0)
你可以使用类似元组的POJO来做到这一点。
(如果您以其他方式存储数据,请告诉我,我会更新此答案以反映这一点。)
<Label Content="_Thing:" Target="{Binding ElementName=TheContentControl, Converter={StaticResource ToContentConverter}}" />
<ContentControl Name="TheContentControl" />
这将使你的元组的自然顺序基于信号的值。
然后,您只需致电public class Tuple implements Comparable<Tuple> {
private int id;
private int x_coor;
private int y_coor;
private int signal;
public int compareTo(Tuple t){
return Integer.compare(this.signal,t.signal);
}
}
,它会根据这种新的自然顺序对您进行排序。
如果您已经保留了自然顺序(或者希望在两种不同的场景中以两种不同的方式对Collections.sort(list);
个对象进行排序),则需要实现一个Comparator来添加额外的顺序而不需要摧毁原始的自然秩序。
Here's a tutorial on using both the Comparable
and Comparator
inferfaces.
答案 1 :(得分:-1)
您可以使用下一个算法执行此操作:
将所有数组添加到新列表中。
Handle Value