首页 > 解决方案 > 从arraylist获取绑定值

问题描述

具有原始状态的更新版本。

一个名为 getMost 的方法,它采用单个整数参数并返回 Personality 对象的 ArrayList。您可以假设参数的值将大于或等于 0,但它可能大于 Competition 对象列表中的项目数。此方法必须返回一个 ArrayList,其中包含得票最多的 Competition 的 Personality 对象。返回的 ArrayList 必须与 Competition 对象中的不同,但 Personality 对象将是相同的。例如,如果参数为 3,则该方法必须创建一个新的 ArrayList,在其中存储三个投票数最多的 Personality 对象,然后返回该列表。

在编写此方法时,您应该考虑以下特殊情况: • 如果参数的值大于或等于列表中的人物数量,则将返回所有人物。• 投票可能存在平局,这可能意味着返回的列表可能包含比参数值更多的对象。例如,如果需要前 3 名,而前 5 位人物有 100、98、50、50 和 42 票,则必须返回 4 个人物。另一方面,如果需要前 3 名并且前 5 名有 100、100、98、50、50 和 42 票,则将返回恰好三个。

代码已删除>>

标签: java

解决方案


我不知道你是否被允许使用流。但是这个代码片段可以满足您的要求:(数字是您的带有数字的列表)

private static long getNumber(int number) {
    if (number < 1 || number >= numbers.size()) return number;
    int numberFromList = numbers.get(number - 1);
    return (number + numbers.stream().filter(n -> n == numberFromList).count()) - 1;
}

下次请添加一些您已经尝试过的代码。


推荐阅读