java中怎么对一组具有对应数字的字母排序

java中,比如,有5个字母以及其分别对应的数字,A--13,D--6,S--9,F--15,T--13,按降序排列,对于数字相同的按照字母的先后顺序排,此例子的结果为F... java中,比如,有5个字母以及其分别对应的数字,A--13,D--6,S--9,F--15,T--13,按降序排列,对于数字相同的按照字母的先后顺序排,此例子的结果为FATSD,请问该如何实现,有详细的实现过程更好,多谢!! 展开
 我来答
lezenglei
2011-07-17 · 超过25用户采纳过TA的回答
知道答主
回答量:50
采纳率:100%
帮助的人:60.1万
展开全部
你是想自己写排序算法呢还是直接用Java提供的API呢?如果想用JAVA里面的API那就推荐你用Arrays里面的sort方法,你可以为这种A--13,D--6,S--9,F--15,T--13创建一个实现Comparable接口的对象,实现里面的compareTo方法来定义你的字母所对应的大小。前者你就好好想想用什么算法实现吧,后者我写了一个实例:
import java.util.Arrays;

public class TestCompare implements Comparable<TestCompare> {

private final char c;
private final int i;

/**
* @return the string
*/
public char getC() {
return c;
}

/**
* @return the i
*/
public int getI() {
return i;
}

public TestCompare(char c, int i) {
this.i = i;
this.c = c;
}

public int compareTo(TestCompare o) {
// TODO Auto-generated method stub
if (o == null) {
// 表示当前实例的位置在o之后
return 1;
} else {
// 先比较数字
if (this.getI() > o.getI()) {
// 表示当前实例的位置在o之前
return -1;
} else if (this.getI() == o.getI()) {
// 数字相等开始比较字母
// char型强转成int行,A到Z各代表多少值应该都知道吧
if (this.getC() < o.getI()) {
// 表示当前实例的位置在o之前
return -1;
} else if (this.getC() == o.getI()) {
// 表示当前实例的位置在o相等
return 0;
} else {
// 表示当前实例的位置在o之后
return 1;
}
} else {
// 表示当前实例的位置在o之后
return 1;
}
}
}

@Override
public String toString() {
return new Character(this.getC()).toString();
};

public static void main(String[] args) {
TestCompare[] compare = new TestCompare[] { new TestCompare('A', 13),
new TestCompare('D', 6), new TestCompare('S', 9),
new TestCompare('F', 15), new TestCompare('T', 13) };
Arrays.sort(compare);
for (TestCompare compare2 : compare) {
System.out.print(compare2);
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
保盼晴Ah
2011-07-17
知道答主
回答量:26
采纳率:0%
帮助的人:7万
展开全部
使用冒泡排序撒,我也忘记了具体的,自己百度哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式