按值排序的列表是否有数据结构?

时间:2011-03-21 21:41:24

标签: java list map set

我有一个JTable显示了游戏的前10个分数。数据结构如下所示:

    // {Position, Name, Score}
Object[][] data = {
    {1, "-", 0},
    {2, "-", 0},
    {3, "-", 0},
    {4, "-", 0},
    {5, "-", 0},
    {6, "-", 0},
    {7, "-", 0},
    {8, "-", 0},
    {9, "-", 0},
    {10, "-", 0}
};

我希望能够以正确的顺序为此数组添加新分数(因此,如果它是第3高,则将其放在索引2处)。然后,我将再次将此列表截断到前10名并更新表格。

我知道通过循环和检查这是微不足道的,但我想知道是否有一个更适合数值排序的数据的适当数据结构?或者简单的二维数组是唯一/最好的吗?

2 个答案:

答案 0 :(得分:5)

TreeSet与自定义比较器一起使用。

此外,您不应使用多维数组,使用地图(名称 - >分数)或自定义对象

答案 1 :(得分:3)

嘿,如果您的数组已排序,您可以使用Collections.binarySearch()Arrays.binarySearch()方法指导您在哪个索引处进行插入。这些方法的工作方式是在现有元素之后进行二进制搜索,如果在集合中找不到该元素,它将返回与插入点相关的值。
更多信息Collections.binarySearch