我需要以下方案的java逻辑:
我需要一个通用逻辑,当我得到5时它应该被转换为0,对于10它应该是1和15它应该是2,依此类推。可以通过提供这种逻辑来帮助我。
我有一个想法是我可以使用键值对的hashmap。
我们能否拥有比这更好的其他逻辑?
答案 0 :(得分:2)
只需将序列的公式应用于给定的数字,在您的示例中可以是:
public static void calculate(int number) {
return (number / 5) - 1;
}
答案 1 :(得分:1)
如果您可以使用Java 8,则可以使用map
将(x / 5) - 1
应用于原始列表的每个元素。
例如:
public static void main(String... args) {
List<Integer> fiveMultiples = Arrays.asList(5, 10, 15, 20, 25, 30, 35, 40, 45, 50,
55, 60, 65, 60, 75, 80, 85, 90, 95);
List<Integer> result = fiveMultiples.stream()
.map((x) -> (x / 5) - 1)
.collect(Collectors.toList());
System.out.println(result);
}
输出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 14, 15, 16, 17, 18]
这比使用HashMap
更优越,因为它更简单,您不需要通过将值存储在表中来花费内存,并且将公式应用于值的成本大致相同使用hashCode()
。