Java 是否有按值排序的列表的数据结构?
我有一个JTable,它显示了一场比赛的前10名得分。数据结构如下所示:Java 是否有按值排序的列表的数据结构?,java,list,map,set,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,
// {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}
};
我希望能够以正确的顺序向这个数组添加一个新的分数(因此,如果它是第三高的,它将被放在索引2)。然后,我将再次将此列表截短到前10名,并更新该表
我知道通过循环和检查来实现这一点很简单,但我想知道是否有一个合适的数据结构更适合按值排序的数据?或者简单的二维数组是唯一的/最好的?使用带有自定义比较器的
此外,您不应该使用多维数组,使用映射(名称->分数)或自定义对象。嘿,如果您的数组已排序,您可以使用
Collections.binarySearch()
或arrays.binarySearch()
方法来指导您在什么索引处进行插入。这些方法的工作方式是对现有元素进行二进制搜索,如果在集合中找不到该元素,它将返回与插入点相关的值。更多信息请点击此处+1。很明显,可以编写一个包含十个最高元素的包装列表,但老实说,除非存在严重的性能问题,否则坚持使用内置库是一种方法!太棒了,谢谢。我知道一定有比阵列更好的方法!我猜你的意思是,Collections.binarySearch在列表上工作,而不是数组。虽然我认为他首先应该使用列表,但插入更容易。