我正在尝试编写一个简单的控制台程序,它接受一个字符串和整数作为输入,将它们输入一个数组,按整数对它们进行排序,并相应地返回内容。我已经和这个项目争吵了很长时间,所以非常感谢你的帮助:)。
答案 0 :(得分:4)
接近方法是创建一个包含信息的字符串和int部分的类。您可以为每个int / string对创建一个实例。然后你可以把这些实例放在一个数组中。
然后,您可以使用Arrays.sort对数组进行排序。请注意,您的类必须实现Comparable
,因为链接的API文档说明了这一点。
答案 1 :(得分:2)
使用TreeMap<Integer, String>
代替数组。 TreeMap按自然顺序中的“键”排序。你所要做的就是迭代它。
amit给出的解决方案也没问题。
答案 2 :(得分:0)
你应该用int和String作为字段编写一个类,并为这个类实现Comparator。将您的元素插入数组,然后使用Arrays.sort()对其进行排序。
答案 3 :(得分:0)
我反对现在这里。所有人都建议你使用Arrays.sort()我建议你不要。
这就是原因。在开始学习编程时,我发现它是一个有趣且非常好的学习形式来实现自己的算法,如果你已经实现了几次自我排序,你将对计算机科学有更深刻的理解。你自己的排序算法也是如此,当你对它感到高兴时,请使用Arrays.sort()。
答案 4 :(得分:0)
除非您知道条目数,否则我不会使用数组进行输入。您可以使用ArrayList,因此您无需知道。
class StringInt implement Comparable<StringInt> {
final String string;
final int num;
public StringInt(String string, int num) {
this.string = string;
this.num = num;
}
public int compareTo(StringInt si) {
return num > si.num ? +1 : num < si.num ? -1 : 0;
}
}
List<StringInt> list = new ArraysList<StringInt>();
// add element.
list.add(new StringInt("Hello", 1));
// sort them
Collections.sort(list);