用范围列表查找给定金额的税值

时间:2019-07-16 11:52:35

标签: java sql data-structures

我有一个含税范围的列表

  • 如果金额> 500,税率为5%
  • 如果金额> 2000,税率为7%
  • 如果金额> 5000,税率为9%
  • 如果金额> 7000,税率为10%
  • 如果金额> 10000,税率为15%

如何将其存储在SQL表中并检索给定数量,

也就是说,如果金额为2500,那么税额应为7%,我不想编写if if语句来查找税额,还有其他最佳解决方案吗?

2 个答案:

答案 0 :(得分:1)

您可以使用NavigableMap<Integer, Integer>(它的实现是TreeMap) 此映射中的键是有序的。这允许使用方法ceilingEntry(key),该方法将返回键值等于或大于提供值的最小键的条目。因此,您将每个步骤的上限作为键,将百分比作为值

NavigableMap<Integer, Integer> taxMap = new TreeMap<>();
taxMap.put(500, 5);
taxMap.put(2000, 7);
System.out.println(taxMap.ceilingEntry(10).getValue());  // returns 5
System.out.println(taxMap.ceilingEntry(1000).getValue());  // returns 7

答案 1 :(得分:0)

您可以使用这种格式将数据保存到SQL数据库中

enter image description here