如何添加字符串和int并按int排序

时间:2011-08-31 15:26:57

标签: java arrays sorting

我正在尝试编写一个简单的控制台程序,它接受一个字符串和整数作为输入,将它们输入一个数组,按整数对它们进行排序,并相应地返回内容。我已经和这个项目争吵了很长时间,所以非常感谢你的帮助:)。

5 个答案:

答案 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);