【发布时间】:2014-01-30 17:22:31
【问题描述】:
我想使用选择排序根据它们的值对 Coin 数组进行排序,但输出显示不正确。输出显示为其他一些独特的格式。我试图解决问题,但仍然无法找到解决方案。我有两个类 CoinSelectionSorter 和一个 Coin 类。我正在使用 Comparable 接口对 Coin 值进行排序。整个代码是这样的-
CoinSelectionSorter.java:
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
This class sorts an array of coins, using the selection sort
algorithm.
*/
public class CoinSelectionSorter {
public static void main (String args[])
{
//public void sort() {
Coin[] list = new Coin[] {new Coin(2, "Johan"),new Coin(5, "peter"), new Coin(1, "robin"),new Coin(15, "walker") }; // example data;
List <Coin> p = Arrays.asList(list);
Collections.sort(p);
System.out.println(p);
list = p.toArray(list);
System.out.println(p);
}
}
Coin.java:
public class Coin implements Comparable<Coin >{
Integer r;
String p;
public Coin(Integer r, String p) {
// TODO Auto-generated constructor stub
this.r = r;
this.p = p;
}
@Override
public int compareTo(Coin test) {
// TODO Auto-generated method stub
return this.r - test.r;
}
}
输出如下:
[Coin@19821f, Coin@addbf1, Coin@42e816, Coin@9304b1]
[Coin@19821f, Coin@addbf1, Coin@42e816, Coin@9304b1]
但我希望输出为:
[2, Johan], [5, 'peter], [1, robin], [15, walker]
[1, robin], [2, Johan], [5, 'peter], [15, walker]
请帮助解决此问题。提前致谢。
【问题讨论】:
-
你需要在你的 coin 类中重写 toString 方法