【发布时间】:2018-09-20 04:45:18
【问题描述】:
这里的帮助将不胜感激。我很困。我要做的是我必须使用选择排序算法对arraylist进行排序,但是arraylist中的每个对象都有多个索引。这必须在 java 中完成。
例如:
public class a {
private int number;
private String letter;
public a(int n, String l)
{
number = n;
letter = l;
}
}
public class SortingArrays {
private ArrayList<a> myarray;
private Comparator<a> sortByNumber;
private Comparator<a> sortByLetter;
public FootballPlayerData() {
myarray = new ArrayList<a>();
getmyarray().add(new a(2, "A"));
getmyarray().add(new a(7, "J"));
//COMPARATORs//
sortByNumber = new Comparator<a>() {
@Override
public int compare(a o1, a o2)
{
if (o1.number < (o2.number)) {
return -1;
}
if (o1.number == (o2.number)) {
return 0;
}
return 1;
}
};
sortByLetter = new Comparator<a>() {
@Override
public int compare(a o1, a o2)
{
return o1.letter.compareTo(o2.letter);
}
};
public void selectionSortbyNumber
{
???
}
public void selectionSortbyLetter
{
???
}
}
那么,如何在 java 中创建一个选择排序(必须是选择排序),按对象中的不同元素对数组列表进行排序?我已经有比较器部分了,但我不知道如何将它与选择排序结合起来。
【问题讨论】:
-
网上找了一个选择排序算法,用Java实现。
-
Collections.sort在幕后利用Arrays.sort,它使用 TimSort(而不是选择排序)。如果您需要特定的算法,您可能必须自己实现它。 -
@Mena 我已经使用了 collections.sort,但是对于这个作业,很遗憾我只能使用选择排序。
-
@coder5777 你需要使用
Comparator吗?使用Comparator进行选择排序可能会很困难,因为选择排序的范围比两个值之间的比较更广泛(由Comparator执行)。 -
@JustinAlbano,使用 Comparator 实现任何排序算法绝对没有问题。
标签: java arraylist selection comparator selection-sort